前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apache和PHP结合

Apache和PHP结合

作者头像
全栈程序员站长
发布2022-09-14 11:03:44
1K0
发布2022-09-14 11:03:44
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年7月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Apache和PHP结合
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档