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

Ubuntu20.04下Nginx部署phpMyAdmin遇‘File Not Found’求助

解决Ubuntu 20.04下Nginx配置phpMyAdmin的"Primary script unknown"错误

问题根源

你的错误核心是Nginx配置中phpMyAdmin的路径映射逻辑错误,导致FastCGI无法定位到正确的PHP脚本,具体有两个关键问题:

  1. 错误指定phpMyAdmin的文件路径(Ubuntu 20.04通过apt安装的phpMyAdmin默认路径为/usr/share/phpmyadmin,而非你配置的/usr/share/nginx/html/phpmyadmin)
  2. try_files和SCRIPT_FILENAME的配置逻辑无法正确解析目录访问请求

修复步骤

1. 确认phpMyAdmin安装路径

先执行命令验证默认安装路径:

ls -ld /usr/share/phpmyadmin

若输出显示目录存在,说明路径正确;如果是手动解压到Nginx根目录,则后续调整对应路径即可。

2. 修改Nginx配置文件

打开你的default.conf,替换原有location ^~ /phpmyadmin块为以下配置:

location ^~ /phpmyadmin {
    # 指定phpMyAdmin的实际安装路径
    alias /usr/share/phpmyadmin;
    index index.php;

    # 处理静态资源,提升性能并避免PHP解析静态文件
    location ~* \.(js|css|png|jpg|gif|ico)$ {
        expires 1d;
        add_header Cache-Control "public, no-transform";
    }

    # PHP脚本处理逻辑
    location ~ \.php$ {
        # 检查请求文件是否存在,不存在直接返回404
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        # 结合alias配置自动生成正确的脚本路径
        fastcgi_param SCRIPT_FILENAME $request_filename;
    }
}

3. 验证配置并重启Nginx

执行配置检查命令,确保无语法错误:

nginx -t

若输出test is successful,重启Nginx服务:

sudo systemctl restart nginx

4. 权限检查(可选)

如果仍有问题,确保php-fpm运行用户(通常为www-data)对phpMyAdmin目录有读取权限:

sudo chown -R www-data:www-data /usr/share/phpmyadmin

测试访问

重新访问http://你的IP/phpmyadmin/,此时应该能正常加载phpMyAdmin登录页面。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:55:22