如何在Nginx服务器的子域名上安装phpMyAdmin
Hey there! I’ve helped tons of folks set up phpMyAdmin on Nginx subdomains, so let’s walk through this step by step—no confusing detours, just clear actions you can follow right now.
在Nginx子域名环境下部署phpMyAdmin的详细指引
先确认你的环境满足这些前提
- 一台运行正常的Nginx服务器
- PHP 7.4或更高版本(phpMyAdmin对旧PHP版本兼容性差)
- 已安装MySQL/MariaDB数据库服务
- 你的域名解析已将目标子域名(比如
pma.yourdomain.com)指向服务器公网IP
步骤1:安装phpMyAdmin
安装命令分系统,选对应你的服务器的操作:
对于Debian/Ubuntu系服务器
sudo apt update sudo apt install phpmyadmin
注意:安装过程中会弹出选择Web服务器的窗口,不要选Apache(我们用Nginx),直接按
Tab+Enter跳过,后续手动配置。
对于CentOS/RHEL系服务器
先启用EPEL仓库,再安装:
sudo dnf install epel-release sudo dnf install phpmyadmin
安装完成后,记住phpMyAdmin的默认路径:
- Debian/Ubuntu:
/usr/share/phpmyadmin - CentOS/RHEL:
/usr/share/phpMyAdmin
步骤2:配置Nginx子域名虚拟主机
我们需要给子域名单独创建Nginx配置文件:
1. 创建配置文件
- Debian/Ubuntu:
sudo nano /etc/nginx/sites-available/pma.yourdomain.com - CentOS/RHEL:
sudo nano /etc/nginx/conf.d/pma.yourdomain.com.conf
2. 写入配置内容
把下面的代码粘贴进去,记得替换注释里的内容:
server { listen 80; server_name pma.yourdomain.com; # 替换成你的实际子域名 root /usr/share/phpmyadmin; # CentOS/RHEL替换成/usr/share/phpMyAdmin index index.php index.html index.htm; # 处理静态资源和路由 location / { try_files $uri $uri/ =404; } # 解析PHP请求 location ~ \.php$ { include snippets/fastcgi-php.conf; # Debian/Ubuntu用这个 # CentOS/RHEL替换成:include fastcgi_params; fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 替换成你的PHP-FPM版本,比如php8.2-fpm.sock fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } # 禁止访问敏感目录和文件,提升安全性 location ~ /\.ht { deny all; } location ~ /(libraries|setup|sql|test|examples)/ { deny all; } }
3. 启用配置并重启Nginx
- Debian/Ubuntu:先创建软链接到启用目录,再检查语法、重启
sudo ln -s /etc/nginx/sites-available/pma.yourdomain.com /etc/nginx/sites-enabled/ sudo nginx -t # 检查配置语法是否正确 sudo systemctl restart nginx - CentOS/RHEL:直接检查语法并重启
sudo nginx -t sudo systemctl restart nginx
步骤3:调整权限与PHP配置(可选但关键)
1. 修复目录权限
确保Nginx/PHP-FPM的运行用户能访问phpMyAdmin目录:
- Debian/Ubuntu:
sudo chown -R www-data:www-data /usr/share/phpmyadmin - CentOS/RHEL:
sudo chown -R nginx:nginx /usr/share/phpMyAdmin
2. 优化PHP参数(解决大文件导入问题)
编辑PHP配置文件(路径比如/etc/php/7.4/fpm/php.ini或/etc/php.ini),修改以下参数:
upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300
保存后重启PHP-FPM:
- Debian/Ubuntu:
sudo systemctl restart php7.4-fpm - CentOS/RHEL:
sudo systemctl restart php-fpm
步骤4:配置HTTPS(强烈推荐,必须做)
为了避免密码泄露,给子域名配置免费SSL证书:
1. 安装Certbot工具
- Debian/Ubuntu:
sudo apt install certbot python3-certbot-nginx - CentOS/RHEL:
sudo dnf install certbot python3-certbot-nginx
2. 自动配置SSL
运行命令,按提示操作(选择重定向HTTP到HTTPS):
sudo certbot --nginx -d pma.yourdomain.com
步骤5:测试访问
打开浏览器,访问https://pma.yourdomain.com,输入你的MySQL/MariaDB用户名和密码,就能进入phpMyAdmin管理界面了!
额外安全小贴士
- 限制访问IP:在Nginx的
location /块里添加allow 你的公网IP; deny all;,只允许你自己的IP访问phpMyAdmin - 启用双因素认证:登录phpMyAdmin后,在「设置」-「安全」里开启双因素认证,进一步提升账户安全
内容的提问来源于stack exchange,提问作者Om Naidu
相关产品推荐
相关产品推荐

