这里须要修改配置文件中的4处,分别为:
ServerName
Require all denied
AddType application/x-httpd-php .php
DirectoryIndex index.html index.phpphp
步骤 :
修改ServerNamehtml
[root@centos001 ~]# /usr/local/apache2.4/bin/apachectl restart AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe34:4a63. Set the 'ServerName' directive globally to suppress this message
解决方法:编辑这个文件,而后重启就没有了
进入配置文件后搜索ServerNamelinux
#进入配置文件 [root@centos001 ~]# vim /usr/local/apache2.4/conf/httpd.conf #搜索 /ServerName
修改Require all deniedapache
为何要修改?修改的目的是,容许全部请求,若是不设置该行,则咱们访问的时候会报403错误。
修改内容在第6步vim
示例: 打开浏览器链接咱们虚拟机的ip,
错误a:
解决方法:
1.先用cmd链接咱们的ip 测试连通性
2.链接80端口,下图是正常的,由于咱们的虚拟机没有开启80端口,因此链接失败
centos
错误b: cmd中使用telnet报错
解决方法:
缘由:pc端的80端口关闭了
打开控制面板==>>程序和功能==>>启用关闭windos功能==>>勾选Telnet客户端
3.开启虚拟机上的80端口浏览器
# 检查80端口是否开启 [root@centos001 ~]# iptables -nvL #开启80端口 [root@centos001 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
4.用cmd从新链接虚拟机80端口,检查
5.用浏览器链接虚拟机ip
6.修改配置文件服务器
#打开配置文件 [root@centos001 ~]# vim /usr/local/apache2.4/conf/httpd.conf #修改成 Require all granted
命令补充 :
/usr/local/apache2.4/bin/apachectl -t //测试修改完配置文件后的语法是否规范
/usr/local/apache2.4/bin/apachectl start //启动服务
/usr/local/apache2.4/bin/apachectl graceful//从新加载配置文件,并不会重启服务php7
增长配置文件AddType application/x-httpd-php .phpapp
若是不增长这行,你的PHP没法解析
#打开配置文件 vim /usr/local/apache2.4/conf/httpd.conf #找到位置粘贴 AddType application/x-httpd-php .php
增长DirectoryIndex index.html index.php
增长一个索引页
1.编写一个测试脚本
#建立一个叫1.php的文件 [root@centos001 ~]# vi /usr/local/apache2.4/htdocs/1.php #写入以下信息,保存退出 <?php phpinfo(); //这个函数 能吧php的相关信息打印出来 ?>
2.打开浏览器,在虚拟机ip后面加上文件名/1.ph
当没法正确解析的时候,咱们该如何排错呢?
方法:
这时候咱们须要检查Apache的配置文件
1.检查php模块是否加载
[root@centos001 ~]# /usr/local/apache2.4/bin/apachectl -M
.若是没有加载怎么办? 检查一下是否有这个文件
[root@centos001 ~]# ls /usr/local/apache2.4/modules/libphp7.so /usr/local/apache2.4/modules/libphp7.so
.若是有这个文件可是没有加载,咱们就应该到配置文件中去注释并加载出来
[root@centos001 ~]# vim /usr/local/apache2.4/conf/httpd.conf
2.检查配置文件是否有写或者写错没有
/usr/local/apache2.4/bin/apachectl -t //测试修改完配置文件后的语法是否规范
3.有没有加index.php索引页
输入网站地址后面通常都默认自动添加这个
为了更清除的认识一下,咱们先来作个实验
windos下的hosts有什么用呢? 答:能够定义一个ip、一个域名,而后让这个域名指向到这个ip去 1.找到hosts所在目录,并用记事本打开
2.打开后 添加
3.用cmd测试一下
1.编辑配置文件httpd.conf(这个文件是httpd服务的主配置文件)
vim /usr/local/apache2.4/conf/httpd.conf //搜索httpd-vhost,去掉#
2.更改虚拟主机配置文件
#进入配置文件 [root@centos001 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf #更改后的配置文件内容 <VirtualHost *:80> //一段这样开头的就是一个虚拟主机 DocumentRoot "/data/wwroot/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> DocumentRoot "/data/wwroot/111.com" ServerAlias www.example.com ServerName 111.com ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
3.添加虚拟主机相应目录
[root@centos001 ~]# mkdir /data/wwroot/ [root@centos001 ~]# mkdir /data/wwroot/abc.com [root@centos001 ~]# mkdir /data/wwroot/111.com
4.在相应目录建立PHP文件
[root@centos001 ~]# vim /data/wwroot/abc.com/index.php #文件内容以下 <?php echo "abc.com"; #另外一个虚拟机的 [root@centos001 ~]# vim /data/wwroot/111.com/index.php <?php echo "111.com"; #检查读写 [root@centos001 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK #重启服务 [root@centos001 ~]# /usr/local/apache2.4/bin/apachectl graceful
1.若是不在虚拟机中进行本地域名配置(hosts),在进行ping命令测试虚拟主机域名时会访问到外网
[root@centos001 ~]# ping abc.com PING abc.com (199.181.132.250) 56(84) bytes of data. 64 bytes from 199.181.132.250 (199.181.132.250): icmp_seq=1 ttl=128 time=252 ms
2.curl -x命令
curl -x 指定访问端口
此时访问全部未定义的域名都会将访问地址指向到默认虚拟主机,由于已经自定义添加了虚拟主机,因此此时的默认虚拟主机为配置文件“httpd-vhosts.conf”中的第一个虚拟主机(在此为abc.com)
[root@centos001 ~]# curl -x192.168.10.120:80 abc.com abc.com[root@centos001 ~]# curl -x192.168.10.120:80 abcf.com abc.com[root@centos001 ~]# curl -x192.168.10.120:80 www.example.com 111.com[root@centos001 ~]# curl -x192.168.10.120:80 111.com