LAMP架构(Apache和PHP结合、Apache默认虚拟主机)

Apache和PHP结合:配置httpd支持php

  • 修改主配置文件 /usr/local/apache2.4/conf/httpd.conf
    • ServerName 处取消注释(解决apache启动时提示ServerName的问题)
    • Directory标签下 Require all denied修改成granted,解决访问403问题
    • 增长php的解析 AddType application/x-httpd-php .php
    • 增长索引页 DirectoryIndex index.html index.php

此处的403指的是启动apache的时候弹出的403警告(见下图),解决方法就是取消ServerName的注释:php

  • 此时启动时报错:
[root@yolks2 conf]# /usr/local/apache2.4/bin/apachectl start
/usr/local/apache2.4/bin/apachectl: 行 79:  6766 段错误               $HTTPD -k $ARGV

查看/usr/local/apache2.4/conf/httpd.conf文件,发现以前安装PHP5和PHP7的时候此处加载了两个模块,此处引发的冲突,注释掉任意一个便可保存文件再次重启试试。html

启动状况:能够看到此处问题已解决linux

  • 此处使用windows机器浏览器输入linux虚拟机器IP地址,提示不能打开

  • 咱们使用windows机器进行ping测试,测试发现能够通

  • 临时添加80端口客户机测试
iptables  -I  INPUT  -p  tcp  --dport  80  -j  ACCEPT

  • 直接输入ip地址便可看到显示 it works

  • 检查apache配置文件是否有错误
/usr/local/apache2.4/bin/apachectl  -t

  • 不重启服务从新加载配置文件
/usr/local/apache2.4/bin/apachectl  graceful
  • 编写php文件测试
vi  /usr/local/apache2.4/htdocs/test_20171015.php

<?php
phpinfo();
?>

正常解析如图apache

  • 不正常解析则显示源代码,排查步骤以下:
    • 检查加载模块是否有php模块,例如:ls /usr/local/apache2.4/modules/libphp5.so 文件是否存在
    • 配置文件检查,例如: vim /usr/local/apache2.4/conf/httpd.conf里有没有libphp5.so配置存在
    • 检查AddType的php解析,配置规范不规范有没有漏掉空格等

Apache虚拟主机

  • 编辑apache主配置文件开启虚拟主机
    • /usr/local/apache2.4/conf/httpd.conf文件中 开启Virtual hosts

  • 编辑虚拟主机配置文件
    • /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

  • 上图所示的VirtualHost标签对中字段的含义:
    • ServerAdmin : 在全部返回给客户端的错误信息中包含的管理员邮件地址
    • DocumentRoot : 定义网站根目录
    • ServerName : 域名
    • ServerAlias : 域名别名
    • ErrorLog : 错误日志文件保存位置
    • CustomLog : 客户请求日志
  • 建立上图所示的目录
mkdir  /data/wwwroot/

mkdir  /data/wwwroot/abc.com

mkdir  /data/wwwroot/111.com
  • 编写虚拟主机abc目录的测试php文件
vim   /data/wwwroot/abc.com/idnex.php

//  编写测试内容以下

<?php
echo "this is test abc.com";
?>
  • 编写虚拟主机111目录的测试php文件
vim   /data/wwwroot/111.com/idnex.php

//  编写测试内容以下

<?php
echo "this is test 111.com";
?>
  • 测试配置是否正常
/usr/local/apache2.4/bin/apachectl  -t
  • 从新加载配置文件
/usr/local/apache2.4/bin/apachectl  graceful
  • 测试
curl  -x192.168.248.129:80  www.abc.com
[root@yolks2 conf]# curl -x192.168.248.129:80 www.abc.com
this is test abc.com[root@yolks2 conf]# curl -x192.168.248.129:80 www.111.com
this is test abc.com[root@yolks2 conf]# curl -x192.168.248.129:80 www.123.com
this is test abc.com

若是咱们访问 www.example.com 则会指向配置的111.com目录下的index.php或者经过111.com访问vim

[root@yolks2 conf]# curl -x192.168.248.129:80 www.example.com
this is test 111.com[root@yolks2 conf]#curl -x192.168.248.129:80 111.com
this is test 111.com[root@yolks2 conf]#
  • 总结
  1. 主配置文件只要开启Virtual hosts ,本主配置文件的ServerName失效,DocumentRoot也失效
  2. 虚拟主机配置文件打开便可配置多个Virtual hosts标签对,每一个Virtual hosts都有本身的DocumentRoot和ServerName,一个Virtual hosts表明一个站点,都是一个虚拟主机。默认虚拟主机即不管任何域名都会访问默认主机。
相关文章
相关标签/搜索