大家好,又见面了,我是你们的朋友全栈君。
Apache和PHP结合
配置httpd支持PHP ServerName Require all denied AddType application/x-httpd-php .php //解析PHP DirectoryIndex index.html index.php
代码语言:javascript复制[root@shuai-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf
修改
找到ServerName 行,取消注释
代码语言:javascript复制ServerName www.example.com:80
找到Require all,将Require all denied 改为Require all granted,不然会返回403
代码语言:javascript复制<Directory />
AllowOverride none
Require all granted
</Directory>
Require all granted
找到 AddType application/x-compress .Z AddType application/x-gzip .gz .tgz
增加
代码语言:javascript复制AddType application/x-httpd-php .php //增加这一行的目的是为了解析php文件
找到
代码语言:javascript复制<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
增加为
代码语言:javascript复制<IfModule dir_module>
DirectoryIndex index.html index.php //增加一个索引页index.php
</IfModule>
检测配置文件语法是否有错误
代码语言:javascript复制[root@shuai-01 ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
重新加载配置文件,这个很重要(平时我们改完配置文件后,检查一下配置文件语法,然后就重启服务了。再重启服务前加上重新加载配置文件后,即使配置文件有错,也不会见你的服务进程杀掉)
代码语言:javascript复制[root@shuai-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
配置成功
访问PHP其实是访问(/usr/local/apache2.4/htdocs/*.php) 配置文件中有一行是
代码语言:javascript复制DocumentRoot "/usr/local/apache2.4/htdocs" // 这一行规定的是访问目录
<Directory "/usr/local/apache2.4/htdocs"> //这一个是对访问目录进行的配置
在该目录下写一个1.php 文件
代码语言:javascript复制[root@shuai-01 ~]# vi /usr/local/apache2.4/htdocs/1.php
<?php
phpinfo();//这个函数可以把PHP相关信息打印出来
?>
保存退出后开始访问
能解释1出来的页面就成功了,不能解释出来的就是页面源代码
没解释出来的问题排查
1, 检查有没有加载PHP5的模块
代码语言:javascript复制[root@shuai-01 ~]# /usr/local/apache2.4/bin/apachectl -M
2,没加载模块,看apache有没有模块文件
代码语言:javascript复制[root@shuai-01 ~]# ls /usr/local/apache2.4/modules/libphp5.so
/usr/local/apache2.4/modules/libphp5.so
3,查看apache配置文件中有没有加载libphp5.so的配置
代码语言:javascript复制[root@shuai-01 ~]# vim /usr/local/apache2.4/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
4,看配置文件中有没有加
AddType application/x-httpd-php .php
问题1: Apache服务开启可能回有的报错,这个其实是一个告警
编写配置文件(/usr/local/apache2.4/conf/httpd.conf):
找到ServerName 行,取消注释
代码语言:javascript复制ServerName www.example.com:80
问题2 : Apache服务开启可能回有的报错
代码语言:javascript复制/usr/local/apache2.4/bin/apachectl: 行 79: 3519 段错误 $HTTPD -k $ARGV
是你跑了两个PHP模块,注释掉一个。
代码语言:javascript复制LoadModule php5_module modules/libphp5.so
#LoadModule php7_module modules/libphp7.so
问题3:
排查方法:
1,看IP是否通。
IP通,再看80端口是否开启
因为Windows没有打开Telnet客户端 打开客户端 控制面板-程序-打开或关闭Windows功能
这是就打开了Telnet,但是没通(服务端没规则iptables)
零时在linux下添加规则
代码语言:javascript复制[root@shuai-01 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
此时Telnet看一下端口
通了
刷新一下浏览器
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157953.html原文链接:https://javaforall.cn