一、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,而是显示源代码,那么我们需要检查以下项目
- /usr/local/apache2.4/bin/apachectl -M 检查php扩展是否加载,有无 /usr/local/apache2.4/modules/libphp5.so文件,确认是php问题还是apache配置问题
- 检查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就是默认虚拟主机 **