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

Nginx部署Nuxt+Laravel项目时配置Phpmyadmin出现403错误如何解决

问题产生原因
  • 权限不匹配:Nginx运行用户(默认www-data)对/home/anjaan/desijewel/目录没有读取+执行权限,但对Laravel的/home/anjaan/desijewel/api/public目录有合法权限,所以指向public目录可正常访问,指向上级目录触发403。
  • Location匹配优先级错误:你配置的location /phpmyadmin是普通前缀匹配,优先级低于全局的location ~ \.php$正则匹配,访问phpmyadmin下的PHP文件时会直接命中全局PHP处理规则,使用全局root/home/anjaan/desijewel/api/public拼接路径,找不到对应文件触发权限错误。
  • 路径匹配不一致:错误日志显示请求路径为/jyoteshdb/,但你配置的匹配路径是/phpmyadmin,路径不匹配导致请求无法命中你写的phpmyadmin规则,被全局规则拦截。
  • alias配置逻辑错误:alias所在的location块未单独配置PHP解析逻辑,直接使用全局PHP规则时会拼接错误的文件路径,同时你配置的alias指向/home/anjaan/desijewel/,没有定位到phpmyadmin的实际目录,也会导致文件找不到。
解决方案
  1. 首先修正目录权限,给Nginx运行用户授予合法权限:
chown -R anjaan:www-data /home/anjaan/desijewel
chmod -R 750 /home/anjaan/desijewel
  1. 调整Nginx配置,替换原有的phpmyadmin location块,如果你实际访问路径是/jyoteshdb,将下方的/phpmyadmin替换为/jyoteshdb即可:
# ^~ 标识让该前缀匹配优先级高于正则匹配,避免被全局PHP规则拦截
location ^~ /phpmyadmin {
    # 注意末尾加/,且路径要定位到phpmyadmin的实际根目录
    alias /home/anjaan/desijewel/phpmyadmin/;
    index index.php;

    # 块内单独配置PHP解析,使用alias路径拼接文件地址
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $request_filename;
    }
}
  1. 验证配置合法性并重载Nginx生效:
nginx -t
systemctl reload nginx

内容的提问来源于stack exchange,提问作者mukeshsoni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:42:01