在本地Apache2环境下配置Nginx共用phpMyAdmin遇阻求助
确认phpMyAdmin安装路径
先检查系统默认的phpMyAdmin路径是否存在,执行命令:ls /usr/share/phpmyadmin/若不存在,需确认phpMyAdmin的实际安装位置。
配置Nginx域名的phpMyAdmin规则
编辑你的Nginx域名配置文件(通常在/etc/nginx/sites-available/my_domain),在server块内添加以下规则:location /phpmyadmin { root /usr/share; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { root /usr/share; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 替换为你系统对应的PHP-FPM套接字路径 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share; } }注意:PHP-FPM套接字路径需与系统实际版本匹配,比如
php7.4-fpm.sock或php8.2-fpm.sock,可通过ls /run/php/查看。修复权限与PHP-FPM配置
确保phpMyAdmin目录权限允许PHP-FPM进程访问:sudo chown -R www-data:www-data /usr/share/phpmyadmin/检查PHP-FPM配置文件(如
/etc/php/8.1/fpm/pool.d/www.conf),确认user和group均设置为www-data。验证配置并重启服务
测试Nginx配置合法性:sudo nginx -t配置无误后,重启相关服务:
sudo systemctl restart nginx sudo systemctl restart php8.1-fpm # 替换为对应PHP版本的FPM服务处理端口冲突(若存在)
若Apache和Nginx同时监听80/443端口,需修改其中一个服务的监听端口:- 编辑Apache的
/etc/apache2/ports.conf,将Listen 80改为Listen 8080(可自定义其他未占用端口) - 重启Apache:
sudo systemctl restart apache2
之后通过Nginx的域名访问
http://your_domain/phpmyadmin即可。- 编辑Apache的
检查phpMyAdmin核心配置
打开/etc/phpmyadmin/config.inc.php,确认数据库连接参数($cfg['Servers'][$i]['host']等)正确,若需要可添加$cfg['PmaAbsoluteUri'] = 'http://your_domain/phpmyadmin/';指定访问路径。
内容的提问来源于stack exchange,提问作者geeky

