phpMyAdmin 在 LNMP 中需手动配置 Nginx 虚拟主机并正确设置 root、index.php、fastcgi_pass;必须配置 blowfish_secret;MySQL 连接建议用 127.0.0.1 绕过 socket 问题;上传大文件需同步调大 Nginx client_max_body_size 和 PHP upload_max_filesize、post_max_size。
phpMyAdmin 无法通过浏览器访问,提示 404 或 502
lnmp 环境下 phpmyadmin 不是自动接入 nginx 的,它只是个纯 php 应用,必须手动配置 nginx 虚拟主机或 location 块来指向其目录。常见错误是直接把 phpmyadmin 解压到 /usr/share/phpmyadmin 就以为完事了——nginx 根本不知道该用哪个 index.php、走哪条 fastcgi_pass 路径。
实操建议:
- 确保
php-fpm已运行(systemctl status php-fpm),且监听地址与 Nginx 配置中的fastcgi_pass一致(如127.0.0.1:9000或unix:/var/run/php-fpm.sock) - 在 Nginx 配置中新增独立 server 块(不推荐塞进默认站点),例如监听
localhost:8080或子域名pma.example.com - 务必设置
root指向 phpMyAdmin 解压后的完整路径(如/usr/share/phpMyAdmin),而非其父目录 - 必须显式声明
index.php,并配置location ~ \.php$块,否则 PHP 文件会被当作静态文件返回源码
登录时提示 “The configuration file now needs a secret passphrase (blowfish_secret)”
这是 phpMyAdmin 启动加密会话的强制要求,config.inc.php 中的 $cfg['blowfish_secret'] 不能为空。CentOS 下若用 yum 安装(如 epel 源里的包),该文件可能根本没生成;若手动解压,则需自行创建并赋值。
实操建议:
- 进入 phpMyAdmin 目录,复制
config.sample.inc.php为config.inc.php - 编辑
config.inc.php,找到$cfg['blowfish_secret'] = '';,填入至少 32 位随机字符串,例如:$cfg['blowfish_secret'] = 'Xq9!vKp2LmR7tYnBwEaFjGhDcIuOzQsN'; - 不要用简单单词或日期,否则会触发安全警告甚至拒绝登录
- 确认文件权限:Nginx 用户(通常是
nginx或www)需有读取权限,但不能是 777 ——644足够,且不应放在 Web 可写目录下
MySQL 连接失败:”mysqli::real_connect(): (HY000/2002): No such file or directory”
这说明 phpMyAdmin 尝试用 Unix socket 连 MySQL,但路径不对或 mysqld 没启用 socket。LNMP 中 MySQL 默认 socket 路径常为 /var/lib/mysql/mysql.sock,而 PHP 编译时可能记成 /tmp/mysql.sock,导致 mysqli 找不到。
实操建议:
- 先确认 MySQL 实际 socket 路径:
mysql -u root -p -e "SHOW VARIABLES LIKE 'socket';" - 在
config.inc.php中显式指定连接方式,避免依赖默认值:$cfg['Servers'][$i]['host'] = '127.0.0.1'; // 强制走 TCP,绕过 socket 查找 $cfg['Servers'][$i]['port'] = '3306';
- 或修改 PHP 配置(
/etc/php.ini)中的mysqli.default_socket和pdo_mysql.default_socket,设为实际路径 - 注意 SELinux:若开启,需放行 httpd_t 对 mysql_socket 的访问(
setsebool -P httpd_can_network_connect_db 1)
上传大 SQL 文件失败,页面空白或报 413 Request Entity Too Large
Nginx 默认限制请求体大小为 1MB,而 phpMyAdmin 导入 SQL 时整个 POST 请求包含文件内容,超限即被拦截,连 PHP 都没机会执行。
实操建议:
- 在对应 Nginx server 或 location 块中添加:
client_max_body_size 512M;(根据需要调整) - 同步检查 PHP 配置:
upload_max_filesize和post_max_size必须 ≥ Nginx 设置值,且memory_limit要足够(如512M) - 改完后必须重载服务:
nginx -t && systemctl reload nginx和systemctl reload php-fpm - 别忽略
max_execution_time和max_input_time,导入大库时建议设为 0(不限制)或足够大的秒数
真正卡住人的地方往往不是安装步骤,而是 Nginx 和 PHP 的边界责任划分——谁该处理路径、谁该解析参数、谁控制上传上限。配错一处,错误信息就藏在另一层里。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











