一、apache与php结合

  • 首先打开本地的telnet客户端(测试端口使用)

 /usr/local/apache2.4/bin/apachectl start //启动apache服务
  • 修改apache配置文件
  • 因为之前加载了php5和php7,所以这里关闭其中一个,运行其中一个 vim /usr/local/apache2.4/conf/httpd.conf //修改以下4个地方
  • ServerName 前面的#去掉
  • Require all denied 改为 Require all granted
  • 添加 AddType application/x-httpd-php .php
  • DirectoryIndex index.html 后加 index.php

  • 保存配置文件之后 /usr/local/apache2.4/bin/apachectl -t //测试语法是否正确 /usr/local/apache2.4/bin/apachectl graceful //重新加载配置文件(无需重启apache) 在浏览器输入主机地址看看是否进入 无法连接 首先测试是否可以ping通,然后测试80端口是否通 经测试ip可以ping通,但是80端口不通,怀疑服务器防火墙没有打开80端口
iptables -nvL   //发现确实没有80端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT  //临时打开80端口

这时候在cmd中telnet 192.168.127.133 80 出现黑窗口,证明80端口已经测通 重新在浏览器输入IP地址

 vim /usr/local/apache2.4/htdocs/test.php //增加如下内容

<?php phpinfo(); ?>

在浏览器中打开http://192.168.127.133/test.php 成功显示php5的配置文件

  • 如果apache无法解析php,而是显示源代码,那么我们需要检查以下项目
  1. /usr/local/apache2.4/bin/apachectl -M 检查php扩展是否加载,有无 /usr/local/apache2.4/modules/libphp5.so文件,确认是php问题还是apache配置问题
  2. 检查apache配置 loadmodule 是否加载php 3.检查apache配置 AddType application/x-httpd-php .php 是否添加 4.检查apache配置 DirectoryIndex index.html index.php 是否添加

二、Apache默认虚拟主机

一台服务器可以访问多个网站,每个网站都是一个虚拟主机 概念:域名(主机名)、DNS、解析域名、hosts 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机

 vim /usr/local/apache2.4/conf/httpd.conf     //搜索httpd-vhost,去掉#

 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下

<VirtualHost *:80> DocumentRoot "/data/wwwroot/abc.com" ServerName abc.com ServerAlias www.abc.com ErrorLog "logs/abc.com-error_log" CustomLog "logs/abc.com-access_log" common </VirtualHost>

<VirtualHost *:80> DocumentRoot "/data/wwwroot/123.com" ServerName 123.com ServerAlias www.123.com www.456.com ErrorLog "logs/123.com-error_log" CustomLog "logs/123.com-access_log" common </VirtualHost>

/usr/local/apache2.4/bin/apachectl   –t
 /usr/local/apache2.4/bin/apachectl  graceful
mkdir -p  /data/wwwroot/abc.com/  /data/wwwroot/123.com/
echo "abc.com" > /data/wwwroot/abc.com/index.html
echo "123.com" > /data/wwwroot/123.com/index.html
curl  -x192.168.127.133:80 www.good.com     //这样会去访问www.abc.com/index.html 
 curl  -x192.168.127.133:80 www.123.com     //访问www.123.com
 curl  -x192.168.127.133:80 www.abc.com

**www.abc.com就是默认虚拟主机 **