在 Nginx 上运行 PHPmyAdmin,传递给 varnish 的 8080 端口无法正常工作!

在 Nginx 上运行 PHPmyAdmin,传递给 varnish 的 8080 端口无法正常工作!

我安装了 Nginx、Varnish 和 PHP-fpm。然后我安装了 PHPmyAdmin 并为其创建了一个虚拟主机:

server{
    listen 8080;
    server_name phpmyadmin.Domain.com;
    access_log /var/log/phpmyadmin.access_log;
    error_log /var/log/phpmyadmin.error_log;

    location / {
      root /usr/share/phpmyadmin;
      index index.php;
    }

    location ~ \.php$ {
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
        include         /opt/nginx/conf/fastcgi_params;
    }

}

当我去时,phpmyadmin.Domain.com它按预期工作!但在提交用户名/密码后,它phpmyadmin.Domain.com:8080/index.php?...也会将我重定向到无法找到页面的响应!

我能做什么?

答案1

我自己也遇到了同样的问题。解决方案是修改 config.inc.php 并指定 phpMyAdmin 安装的绝对 URL。根据phpMyAdmin 文档, 添加:

$cfg['PmaAbsoluteUri'] = 'http://your.domain.com/path/to/phpmyadmin/';

在这种情况下,不需要添加port_in_redirect off;到 nginx 配置 - 尽管这样做似乎没有任何不利影响(并且在其他情况下确实有帮助)。

答案2

只需在 nginx 配置文件中的任意位置的 php 位置块中添加以下行即可那个include fastcgi_params部分:

fastcgi_param   SERVER_PORT 80;

这将告诉 php 它不应该尝试重定向到 nginx 正在监听的任何端口,而是停留在端口 80 上,就像 varnish 一样。

答案3

可能是 phpmyadmin php 文件/设置中存在问题,正在查找标准端口 80。这似乎在某些脚本和 Varnish 中很常见,例如 vbulletin 和 4images 脚本也存在类似的问题http://vbtechsupport.com/290/http://vbtechsupport.com/303/- 希望它能给你一些想法,让你知道在哪里可以找到 phpmyadmin 来纠正这个问题。

答案4

相关内容