未修改前php
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl start AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::531b:14ea:3a75:f113. Set the 'ServerName' directive globally to suppress this message httpd (pid 5756) already running
定义ServerNamelinux
完成修改后web
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl restart [root@linux-5 ~]#
[root@linux-5 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
测试链接Apache服务器apache
<Directory /> AllowOverride none Require all granted //将denied改成granted </Directory> ... DocumentRoot "/usr/local/apache2.4/htdocs" <Directory "/usr/local/apache2.4/htdocs"> ... Require all granted //将denied改成granted </Directory>
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl graceful
增长索引页能够直接输入域名或IP,后自动跳转至索引页,无需单独输入vim
[root@linux-5 ~]# vim /usr/local/apache2.4/htdocs/test.php <?php phpinfo(); ?> //该脚本用于打印PHP版本信息
注:增长PHP文件无需重启服务服务器
上图为成功解析PHP脚本文件的效果,若是不支持解析,则会产生以下结果网络
Tips:使用ctrl+r能够快速查找并使用历史命令dom
不一样的主机名解析到不一样的IP地址,提供虚拟主机服务的机器上同时设置有这些IP地址。服务器根据用户请求的目的IP地址来断定用户请求的是哪一个虚拟主机的服务,从而进一步的处理。(默认虚拟主机只能定义单一域名,且为使用该服务器IP所跳转的惟一Apache站点,全部域名均会跳转至惟必定义的DocumentRoot下的网站根目录,一个配置文件只能定义一个Severname)curl
一台服务器能够访问多个网站,每一个网站都是一个虚拟主机tcp
任何一个域名解析到这台机器,均可以访问的虚拟主机就是默认虚拟主机
路径C:\Windows\System32\drivers\etc\hosts
因为默认虚拟主机只能使全部域名指向同一网站根目录,不易于管理,所以能够打开虚拟主机配置文件,使得不一样域名能够跳转至不一样网站。
[root@linux-5 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf # Virtual Hosts ... <VirtualHost *:80> //可定义多个虚拟主机(当前第一个) ServerAdmin webmaster@dummy-host.example.com //管理员邮箱,可不填写 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-access_log" common //访问日志 </VirtualHost> <VirtualHost *:80> //可定义多个虚拟主机(当前第二个) ServerAdmin webmaster@dummy-host2.example.com //管理员邮箱,可不填写 DocumentRoot "/data/wwwroot/def.com" //网站的根目录 ServerName def.com //网站(服务器)名称,惟一 ServerAlias www.def.com www.456.com //网站(服务器)别名,可多个 ErrorLog "logs/def.com-error_log" //错误日志 CustomLog "logs/def.com-access_log" common //访问日志 </VirtualHost>
注:一旦虚拟主机配置文件生效,则默认主机配置的文件定义的内容会失效
/usr/local/apache2.4/bin/apachectl -t /usr/local/apache2.4/bin/apachectl graceful
在虚拟主机配置文件中不能在代码后添加注释,不然会引发报错
[root@linux-5 ~]# mkdir /data/wwwroot/ [root@linux-5 ~]# mkdir /data/wwwroot/abc.com [root@linux-5 ~]# mkdir /data/wwwroot/def.com
[root@linux-5 ~]# vim /data/wwwroot/abc.com/index.php <?php echo "abc.com"; [root@linux-5 ~]# vim /data/wwwroot/def.com/index.php <?php echo "def.com";
curl -x //发送网络请求,-x选项为网络请求增长代理,至关于hosts的做用
[root@linux-5 ~]# curl -x 192.168.88.5:80 abc.com abc.com[root@linux-5 ~]#
[root@linux-5 ~]# curl -x 192.168.88.5:80 def.com def.com[root@linux-5 ~]#
在测试过程当中使用的是两个虚拟主机,则第一个虚拟主机则是Apache服务的默认虚拟主机,不管访问哪一个域名(其余虚拟主机定义的域名除外),只要指向了服务器的IP地址,都会跳转至默认虚拟主机。咱们实验所使用的Linux虚拟机,在其上安装的Apache服务的主配置文件,至关于实体主机,也是默认主机,只能指定一个域名,访问单一目录下的文件。