You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04环境下Apache服务器访问非index.php的PHP文件出现403 Forbidden错误求助

Ubuntu 22.04环境下Apache服务器访问非index.php的PHP文件出现403 Forbidden错误求助

嘿,看你描述的问题,结合Apache错误日志里的AH01797: client denied by server configuration提示,基本可以确定是服务器访问控制规则阻断了非index.php文件的请求。我给你梳理几个排查和解决的步骤,你可以一步步试:

  • 第一步:检查站点目录的Apache配置规则
    先打开你的站点虚拟主机配置文件(比如/etc/apache2/sites-available/example.com.conf),或者主配置apache2.conf,找到对应目录的<Directory>块(比如/var/www/example.com/dir/)。
    注意Apache 2.4之后已经弃用了旧的Order allow,deny这类指令,改用Require系列规则。如果你的配置里还留着老规则,或者没有明确允许访问,就会触发403。把目录块改成这样:

    <Directory /var/www/example.com/dir/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
  • 第二步:排查.htaccess文件的影响
    如果你的目标目录里有.htaccess文件,里面可能藏着限制访问的Rewrite规则或者Deny指令。可以先临时把它重命名为.htaccess.bak,然后重启Apache试试能不能访问目标PHP文件——如果能访问,就说明是.htaccess里的规则出了问题,再慢慢排查里面的内容。

  • 第三步:确保必要的Apache模块已启用
    Require指令依赖mod_authz_core模块,Ubuntu 22.04默认应该是启用的,但保险起见还是检查一下:

    sudo a2enmod authz_core
    sudo systemctl restart apache2
    
  • 第四步:再次确认文件和目录权限
    虽然你说权限没问题,但还是再核对一遍:确保目录权限是755,PHP文件权限是644,并且所有文件和目录的所属用户是Apache的运行用户www-data:

    sudo chown -R www-data:www-data /var/www/example.com/dir/
    sudo chmod -R 755 /var/www/example.com/dir/
    sudo chmod 644 /var/www/example.com/dir/*.php
    

最后,不管改了哪项配置,都要记得重启Apache让配置生效:

sudo systemctl restart apache2

做完这些再去测试访问login_process.php,应该就能解决问题了。如果还是不行,再去看错误日志有没有新的报错信息,我们再针对性排查~

备注:内容来源于stack exchange,提问作者Tejaswa Nama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 07:53:19