我无法打开phpMyAdmin,出现错误301或500


8

我已经安装了phpMyAdmin,但是无法在任何浏览器上打开它:如果浏览到,则会得到301重定向(*)http://localhost:8080/phpmyadmin。如果将a添加/到地址的末尾,则会显示500错误状态

(*)使用Wireshark捕获。如果从同一主机上的终端使用netcat,则会收到301重定向到其他地址

该环境是我为开发/测试目的而构建的VM,其中安装了LEMP(Linux / Nginx / MySQL / PHP)环境。这是在Ubuntu 12.04 64位主机上作为来宾运行的CentOS 6 64位的全新安装。VM以端口转发的NATed模式运行。我可以http://localhost:8080在来宾计算机上打开并查看nginx欢迎页面。我也可以打开phpinfo页面,所以我知道PHP正在运行。

我已经分别安装了nginx,MySQM,PHP和phpMyAdmin软件包。我正在使用phpMyAdmin的默认设置。在installig MySQL之后,我运行了mysql_secure_installation命令,并且除其他选项外,我禁用了远程root用户访问。

这是我的配置文件:

  • /etc/php.ini链接
  • /etc/php.d/mysql.ini链接
  • /etc/nginx/nginx.conf链接
  • /etc/nginx/conf.d/default.conf链接(为了运行PHP脚本,我已经按照在线教程进行了自定义,但我不确定自己在做什么。)
  • /etc/phpMyAdmin/config.inc.php链接

4
这个问题有4票了。为什么?meta.superuser.com/questions/6455/...
那巴西盖伊

Answers:


4

有多种原因阻止我登录phpMyAdmin:

mbstring

错误500 PHP 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/zh/mbstring.installation.php的评论,我尝试安装该php-mbstring软件包,但该软件包已经存在。

重新启动已php-fpm service解决错误500。

PHP会话

解决上一个错误后,出现以下错误:

在此处输入图片说明

/etc/phpmyadmin/config.inc.php 有线

$ cfg ['Servers'] [$ 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错误。我用谷歌搜索并尝试了各种解决方案,但均未成功。如果找到适合我的情况的解决方案,我将更新此答案。


0

必须在/etc/phpmyadmin/config.inc.php配置文件上允许root登录。

添加以下行:

$ cfg ['Servers'] [$ i] ['AllowRoot'] = TRUE;


3
您好,欢迎来到SuperUser。请花一些时间解释这些命令行将执行的语法和详细信息。它可能与将来的读者或质量检查人员有关。
罗伦佐·冯·马特洪峰

我什至看不到phpmyadmin登录屏幕。我已将行添加到cfg文件中,但没有解决问题。
那位巴西佬

docs.phpmyadmin.net/en/latest/config.html指出默认值为true。我尚未将其设置为false,并且它不存在于配置文件中。
那位巴西佬

0

检查您/var/log/nginx/error.log的错误500。

似乎您正在运行两种配置(一种在端口80上,另一种在8080上),这可能会发生冲突。


我不在同一台计算机上运行两个Web服务器配置。8080是来宾VM的NAT重定向端口,而80是主机OS的端口。从技术上讲,它们位于同一台计算机上,但是彼此虚拟化。
巴西的Guy

但是,您关于查找日志文件的建议使我朝着正确的方向前进。
巴西的Guy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.