Tha*_*Guy 8 centos mysql phpmyadmin nginx
我已经安装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 的默认设置。安装 MySQL 后,我运行了该mysql_secure_installation命令,除其他选项外,我还禁用了远程 root 访问。
这是我的配置文件:
有多种原因阻止我登录到 phpMyAdmin:
错误 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/en/mbstring.installation.php的评论,我尝试安装该php-mbstring软件包,但它已经存在。
重新启动php-fpm service解决了错误500。
解决上一个错误后,我得到以下错误:

/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 错误。我用谷歌搜索并尝试了各种解决方案,但没有成功。如果我为我的案例找到解决方案,我将更新此答案。
| 归档时间: |
|
| 查看次数: |
8363 次 |
| 最近记录: |