11.14/11.15 Apache和PHP结合
修改Apache(httpd)主配置文件
定义ServerName以消除Apache启动时所产生的警告
未修改前
[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
定义ServerName
完成修改后
[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl restart
[root@linux-5 ~]#
打开服务器的80端口
[root@linux-5 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
测试连接Apache服务器
修改配置文件以防止打开虚拟主机配置文件时拒绝访问(访问时提示403)
<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
修改配置文件以用于解析PHP文件
增加PHP的索引页
增加索引页可以直接输入域名或IP,后自动跳转至索引页,无需单独输入
编写PHP测试脚本
[root@linux-5 ~]# vim /usr/local/apache2.4/htdocs/test.php
<?php
phpinfo();
?>
//该脚本用于打印PHP版本信息
注:增加PHP文件无需重启服务
测试PHP解析效果
上图为成功解析PHP脚本文件的效果,如果不支持解析,则会产生如下结果
Tips:使用ctrl+r可以快速查找并使用历史命令
11.16/11.17 Apache默认虚拟主机
定义
不同的主机名解析到不同的IP地址,提供虚拟主机服务的机器上同时设置有这些IP地址。服务器根据用户请求的目的IP地址来判定用户请求的是哪个虚拟主机的服务,从而进一步的处理。(默认虚拟主机只能定义单一域名,且为使用该服务器IP所跳转的唯一Apache站点,所有域名均会跳转至唯一定义的DocumentRoot下的网站根目录,一个配置文件只能定义一个Severname)
一台服务器可以访问多个网站,每个网站都是一个虚拟主机
任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机
修改Windows系统上的hosts
路径C:\Windows\System32\drivers\etc\hosts
由于默认虚拟主机只能使所有域名指向同一网站根目录,不易于管理,因此可以打开虚拟主机配置文件,使得不同域名可以跳转至不同网站。
打开虚拟主机配置文件
编辑虚拟主机配置文件
[root@linux-5 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
# Virtual Hosts
...
<VirtualHost *:80> //可定义多个虚拟主机(当前第一个)
ServerAdmin [email protected] //管理员邮箱,可不填写
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 [email protected] //管理员邮箱,可不填写
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服务的主配置文件,相当于实体主机,也是默认主机,只能指定一个域名,访问单一目录下的文件。
标签:配置文件,虚拟主机,11.16,com,linux,Apache,root From: https://blog.51cto.com/u_13622854/5754611