美文网首页linux运维
lamp(四)——apache与php结合、虚拟主机配置

lamp(四)——apache与php结合、虚拟主机配置

作者: awsome365 | 来源:发表于2018-11-14 19:01 被阅读1次

    11.14/11.15 Apache和PHP结合
    11.16/11.17 Apache默认虚拟主机

    lamp安装完成后就是三个软件的配置和维护。配置主要设计apache和php,作为web服务的主要提供者,apache配置是首先要掌握的。

    apache与php结合

    httpd主配置文件是/usr/local/apache2.4/conf/httpd.conf。直接编辑配置文件vim /usr/local/apache2.4/conf/httpd.conf,修改以下4个地方:

    1. 去掉ServerName那一行最前的注释
    2. “Require all denied” 中denied改为granted,如果不改有时会拒绝访问(返回403)
    3. 在AddType开头的那几行下面添加一行:“AddType application/x-httpd-php .php”
    4. 在“DirectoryIndex index.html”后面添加“ index.php”

    如果调试过程中无法访问apache,配置无问题的话查看linux防火墙是否屏蔽了访问。修改完apache配置文件,一定要先测试语法,然后再重新加载配置文件。相关命令如下:

    /usr/local/apache2.4/bin/apachectl -t //测试语法
    /usr/local/apache2.4/bin/apachectl graceful //加载配置
    /usr/local/apache2.4/bin/apachectl start //启动服务
    

    查看apache服务,本机上可以使用netstat -lntp,其他机器上可以使用ping查看服务器能不能ping通,此外还要用telnet查看80端口是否打开。

    测试apache提供的web服务,可以用curl localhost。默认有一个“it works”的页面,还可以自己写网页,下面编写一个简单的网页。
    vim /usr/local/apache2.4/htodcs/test.php ,增加如下内容:

    <?php
    echo 123;
    ?>
    

    然后curl localhost/test.php,就可以查看到这个网页。其中apache提供web服务,php作为一个模块解析php语法。

    Apache默认虚拟主机

    apache提供web服务,一台服务器可以配置多个域名网站,每个网站就是一个虚拟主机提供服务。要更好的理解web服务器还需要了解几个概念:域名(主机名)、DNS、解析域名、hosts。远程计算机要访问web服务器,必须知道服务器的ip地址。但是人类很难记住复杂的ip,于是就在本地计算机hosts文件上写好ip、域名对照表,人们只要记住域名就好。web网站越来越多,本地hosts文件很难维护,于是出现了dns服务,即专门解析域名、ip的远端服务。当然,本地hosts文件还是存在的,优先级高于dns服务。

    一台服务器提供多个web主机服务,就是多个虚拟主机。任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机。访问web服务主机其实就是访问其开放的目录、文件。

    开启虚拟主机:vim /usr/local/apache2/conf/httpd.conf,搜索httpd-vhost,去掉#。开启虚拟主机后httpd.conf中主机的配置会失效,生效的是extra目录中的httpd-vhosts.conf:vim /usr/local/apache2/conf/extra/httpd-vhosts.conf,改为如下

    <VirtualHost *:80>
       ServerAdmin admin@linux.com
       DocumentRoot "/data/wwwroot/aaa.com"
       ServerName aaa.com
       ServerAlias www.bbb.com
       ErrorLog "logs/aaa.com-error_log"
       CustomLog "logs/aaa.com-access_log" common
    </VirtualHost>
    <VirtualHost *:80>
       DocumentRoot "/data/wwwroot/123.com"
       ServerName www.123.com
    </VirtualHost>
    

    /usr/local/apache2/bin/apachectl –t 测试配置文件语法是否正确。/usr/local/apache2/bin/apachectl graceful 语法无误后重新加载配置文件。为了顺利测试访问web服务,还需要生成一些目录和文件:

    mkdir -p /data/wwwroot/aming.com  /data/wwwroot/123.com
    echo "aaa.com" > /data/wwwroot/aaa.com/index.html //网站默认的主页就是index.html   
    echo "123.com" > /data/wwwroot/123.com/index.html
    

    curl -x127.0.0.1:80 aaa.com //这样会去访问aaa.com/index.html
    curl -x127.0.0.1:80 www.123.com //访问www.123.com
    curl -x127.0.0.1:80 www.bbb.com //访问默认虚拟主机aaa.com的别名
    curl -x127.0.0.1:80 www.abaed.com //这个域名没有定义,但是-x参数指定了访问ip,该ip主机解析默认虚拟主机的目录(虚拟主机配置文件中第一个主机配置)

    相关文章

      网友评论

        本文标题:lamp(四)——apache与php结合、虚拟主机配置

        本文链接:https://www.haomeiwen.com/subject/zixsfqtx.html