Apache2开启path_info的解决方案

本文详细介绍了如何在Apache服务器上为PHP框架开启PathInfo模式,包括检查当前状态、修改php.ini文件、重启服务等步骤,解决框架应用时的404错误或access denied问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Apache2在默认情况下没有开启PathInfo模式,如果使用apache提供的httpd服务,网站文件上传后可以进入首页,如http://114.53.245.102,采用这种方式访问时可以看到首页页面,但在域名后增加url字段时便出现404错误,或者access denied,如地址栏为http://114.53.254.102/a/b/c这种方式时便无法访问。这在许多框架应用时都会出现,因此需要手动开启pathinfo服务。

(1)如果框架为php类框架时,可以在网站根目录下编辑phpinfo.php文件,并在里面输入:

<?php 
   echo phpinfo();
?>

然后在浏览器地址栏输入:http://域名/phpinfo.php,

查看如图中红圈所示位置,如果local value和master value均为0,就表明没有开启,而默认情况下这个值都是0。因此需要修改为1。

(2)开始修改。在linux服务器中找到php.ini文件,在当前用户目录下使用 find / -name php.ini,会得到对应的路径,

如果不清楚当前php版本,可以使用php -v获取当前版本信息,由此去定位具体的php.ini文件。例如当前php版本为5.6,则使用vi /user/local/php56/etc/php.ini 开展编辑,使用vi搜索命令 /cgi.fix_pathinfo,快速定位在文件中的位置,然后将其值修改为1。然后保存退出。

即cgi.fix_pathinfo=1

(3)重启php-fpm。

使用/etc/init.d/php-fpm restart重启,然后重新在浏览器地址栏输入http://域名//a/b,可以发现已经开启了pathinfo模式。

也可以再重新打开phpinfo.php文档,查看cgi.fix_pathinfo的值是否已经发生了改变。

如上步骤本人已经亲测成功,供大家参考。之前在网上看到的修改httpd.conf配置文件的方式完全行不通,所以在此记录一下以便后续查询,也便遇到同样问题的朋友参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值