我已经安装了 phpMyAdmin,但是无法在任何浏览器上打开它:我收到 301 重定向(*)如果我浏览到http://localhost:8080/phpmyadmin
。如果我/
在地址末尾添加一个,我得到的是 500 错误状态。
(*) 使用 Wireshark 捕获。如果我从同一主机上的终端使用 netcat,我会得到301 重定向至不同的地址。
该环境是我为开发/测试目的构建的虚拟机,在其中安装了一个激光脉冲(Linux / Nginx / MySQL / PHP)环境。这是全新安装的CentOS6 64 位在 Ubuntu 12.04 64 位主机上作为客户机运行。虚拟机以 NATed 模式运行,并带有端口转发。我可以http://localhost:8080
在客户机上打开并看到 nginx 欢迎页面。我可以打开phpinfo 页面所以我知道 PHP 正在运行。
我分别安装了 nginx、MySQM、PHP 和 phpMyAdmin 软件包。我使用的是 phpMyAdmin 的默认设置。安装 MySQL 后,我运行了命令mysql_secure_installation
,除其他选项外,我还禁用了远程根访问。
这是我的配置文件:
答案1
有多个原因导致我无法登录 phpMyAdmin:
字符串
错误 500PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177
在文件上生成一条消息/var/log/php-fpm/www-error.log
。根据对http://www.php.net/manual/en/mbstring.installation.php我尝试安装该php-mbstring
包但它已经存在了。
重新启动php-fpm service
解决了错误 500。
php 会话
解决完上面的错误后,又出现了下面的错误:
/etc/phpmyadmin/config.inc.php
有线
$cfg['服务器'][$i]['auth_type'] = 'cookie';
但 PHP 的session.save_path
变量被设置为不存在的/var/lib/php/session
文件夹。
创建具有适当权限的文件夹解决了这个错误,我可以正确登录。
尾部斜杠重定向
如果我尝试访问任何此服务器上的地址在 URL 末尾没有尾部斜杠,nginx 会添加尾部斜杠和删除其:8080
部分。如果我留下尾部斜线,则不会发生这种情况。
(例如:http://localhost:8080/example
被重定向到http://localhost/example/
。事实上,我正在运行 phpMyAdmin两个都在虚拟机和主机上这更加令人困惑,因为我会看到 phpMyAdmin 登录对话框,但在错误的目的地)。
好像是一个常见的 nginx 错误。我在 Google 上搜索并尝试了各种解决方案,但均未成功。如果我找到适合我的情况的解决方案,我会更新此答案。
答案2
配置文件必须允许 root 登录/etc/phpmyadmin/config.inc.php
。
添加以下行:
$cfg['服务器'][$i]['AllowRoot'] = TRUE;
答案3
检查你的/var/log/nginx/error.log
错误 500 指的是什么。
看起来您正在运行两个配置(一个在端口 80 上,另一个在 8080 上),它们可能会发生冲突。