Ubuntu20.04下Nginx部署phpMyAdmin遇‘File Not Found’求助
解决Ubuntu 20.04下Nginx配置phpMyAdmin的"Primary script unknown"错误
问题根源
你的错误核心是Nginx配置中phpMyAdmin的路径映射逻辑错误,导致FastCGI无法定位到正确的PHP脚本,具体有两个关键问题:
- 错误指定phpMyAdmin的文件路径(Ubuntu 20.04通过apt安装的phpMyAdmin默认路径为
/usr/share/phpmyadmin,而非你配置的/usr/share/nginx/html/phpmyadmin) 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
相关产品推荐
相关产品推荐

