Apache(httpd)的配置文件:/usr/local/apache2.4/conf/httpd.conf。php
由于本机安装了两个版本的PHP,因此须要进行该配置,若是只装一个PHP服务则会默认调用存在的PHP服务(在此选用PHP5)。html
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… LoadModule php5_module modules/libphp5.so #LoadModule php7_module modules/libphp7.so
说明: 指定Apache调用PHP5。linux
graph LR 开始-->控制面板 控制面板-->程序 程序-->打开或关闭Windows功能 打开或关闭Windows功能-->选择telnet客户端
更改配置文件: [root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… <Directory /> AllowOverride none Require all granted </Directory> …… 检测配置是否存在语法错误: [root@1 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK 从新加载服务: [root@1 ~]# /usr/local/apache2.4/bin/apachectl graceful 注:该命令不会使服务重启,只是加载配置文件的内容。
说明: 将此处的“Require all denied”改成“Require all granted”。apache
添加监听80端口的规则:vim
[root@1 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
说明: 至此,可使用浏览器直接访问本地虚拟机IP。浏览器
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… # AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .php # ……
说明: 在此添加“AddType application/x-httpd-php .php”,意思是容许PHP服务解析该服务器。服务器
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> …… 检测、加载: [root@1 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@1 ~]# /usr/local/apache2.4/bin/apachectl graceful
说明: 在此添加“index.php”,php7
[root@1 ~]# vim /usr/local/apache2.4/htdocs/1.php <?php phpinfo(); #该参数的含义是PHP的信息 ?> #该命令的含义是:在访问该地址时,直接打印PHP的相关信息
说明: 建立一个php文件,而后使用浏览器访问该文件(此时不须要重启服务器):app
即,能够正常访问,说明该服务器支持PHP解析,若是不支持php解析的话,访问该文件时会显示源代码。curl
完成PHP解析配置!
故障: 服务器没法进行PHP解析!
解决办法:
[root@1 ~]# /usr/local/apache2.4/bin/apachectl -M
若是没有加载,则须要检查系统中有没有PHP模块:
[root@1 ~]# ls /usr/local/apache2.4/modules/libphp5.so /usr/local/apache2.4/modules/libphp5.so
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… #LoadModule php5_module modules/libphp5.so LoadModule php7_module modules/libphp7.so 检测、加载: [root@1 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@1 ~]# /usr/local/apache2.4/bin/apachectl graceful
说明: 因在进行PHP5解析配置时已完成其余相关配置,因此在此只需更改要调用的PHP版本便可,若是初次配置,操做同PHP5.
ctrl+r用途:反向搜索并调用执行过的命令。(reverse-i-search)。
使用方法:按ctrl+r后命令行会变成“(reverse-i-search)`': ”状态,而后输入使用过的参数,此时会直接显示出相关的命令,回车便可执行该命令。
Windows系统中hosts位置“C:\Windows\System32\drivers\etc\hosts”。
说明: 在此能够自定义匹配本地IP和域名,目的是添加临时访问地址(在DNS未生效的时候使用)。
在hosts文件中添加“192.168.8.131 www.adai.com”便可将本地虚拟主机添加到Windows系统,访问该域名时会自动解析到本地虚拟主机“ServerName www.example.com:80”。
在物理机访问的域名“www.adai.com”并未在虚拟机Apache配置文件中定义,虚拟机中只定义了“ServerName www.example.com:80”一个域名,该域名即为Apache的默认主机,此时经过任何一个绑定该虚拟机IP的域名进行访问都会跳转到该主机。
由于一台服务器能够跑多个域名,为了方便管理,须要对虚拟主机进行配置:
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… # Virtual hosts Include conf/extra/httpd-vhosts.conf ……
说明: 编辑“Virtual hosts(虚拟主机)”的参数,去掉#,启用虚拟主机配置文件“httpd-vhosts.conf”。
注: Apache也支持单独管理每一个虚拟主机,配置参数以下:
[root@1 ~]# vim /usr/local/apache2.4/conf/httpd.conf …… # Virtual hosts Include conf/extra/vhosts/*.conf …… [root@1 ~]# mkdir /usr/local/apache/conf/extra/vhosts
以后在/usr/local/apache/conf/extra/vhosts目录中建立虚拟主机就能够。
[root@1 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
该配置文件下每组“< VirtualHost *:80 >”表明一个主机(即:一个网站):
进行以下编辑:
<VirtualHost *:80> DocumentRoot "/data/wwwroot/abc.com" #指定域名所指向的地址 ServerName abc.com #定义网站名称 ServerAlias www.abc.com www.123.com #设置别名(可设置多个) ErrorLog "logs/abc.com-error_log" CustomLog "logs/abc.com-error_log" common #日志文件 </VirtualHost> <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
此时即定义了一个网站,定义网站的核心参数即为:DocumentRoot(网站根目录)、ServerName(域名)。
注意: 虚拟主机生效后,原Apache配置文件中的默认主机(www.example.com ~ 192.168.8.131)就会失效(在此用www.example.com ~ 111.com进行验证)。
[root@1 ~]# mkdir /data/wwwroot/ [root@1 ~]# mkdir /data/wwwroot/abc.com [root@1 ~]# mkdir /data/wwwroot/111.com
在相应目录建立PHP文件:
[root@1 ~]# vim /data/wwwroot/abc.com/index.php <?php echo "welcome to abc.com"; ?> [root@adailinux ~]# vim /data/wwwroot/111.com/index.php <?php echo "welcome to 111.com"; ?>
检测、重载Apache配置文件:
[root@1 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@1 ~]# /usr/local/apache2.4/bin/apachectl graceful
在此使用浏览器和curl命令分别进行测试。
若是不在虚拟机中进行本地域名配置(hosts),在进行ping命令测试虚拟主机域名时会访问到外网。
[root@1 ~]# ping www.abc.com PING abc.com (199.181.132.250) 56(84) bytes of data.
若是想在访问“abc.com”时指向到本地虚拟机IP,能够在/etc/hosts文件中指定域名,或者使用curl命令进行访问,以下:
eg:
[root@1 ~]# curl -x192.168.8.131:80 abc.com welcom to abc.com
注意: 此时访问全部未定义的域名都会将访问地址指向到默认虚拟主机,由于已经自定义添加了虚拟主机,因此此时的默认虚拟主机为配置文件“httpd-vhosts.conf”中的第一个虚拟主机(在此为abc.com),效果以下:
[root@1 ~]# curl -x192.168.8.131:80 www.abcde.com welcom to abc.com