尾部斜杠重定向

尾部斜杠重定向

我已经安装了 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,除其他选项外,我还禁用了远程根访问。

这是我的配置文件:

  • /etc/php.ini关联
  • /etc/php.d/mysql.ini关联
  • /etc/nginx/nginx.conf关联
  • /etc/nginx/conf.d/default.conf关联(为了运行 PHP 脚本,我根据在线教程对其进行了定制,并且我不太清楚自己在做什么
  • /etc/phpMyAdmin/config.inc.php关联

答案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 上),它们可能会发生冲突。

相关内容