别名使用Nginx导致phpMyAdmin登录无限循环

前端之家收集整理的这篇文章主要介绍了别名使用Nginx导致phpMyAdmin登录无限循环前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近我一直在尝试使用Nginx建立一个Web服务器(我通常使用Apache).但是我试图在别名上设置PHPMyAdmin时遇到了问题.别名正确地将您带到PHPMyAdmin登录屏幕,但是当您输入有效凭据并点击时,您最终会返回登录屏幕而没有错误.

对我来说听起来像一个cookie或会话问题…但如果我符号链接PHPMyAdmin目录并尝试通过符号链接版本登录它工作正常!符号链接和别名都设置了相同数量的cookie,并且这两个设置似乎都为正确的域和路径设置了cookie.

我的Nginx配置为PHP别名如下:

location ~ ^/PHPmyadmin/(.*\.PHP)${
    alias /usr/share/PHPMyAdmin/$1;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.PHP;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $request_filename;
}

>我正在运行Nginx 0.8.53
> PHP 5.3.3
> MysqL 5.1.47
> PHPMyAdmin 3.3.9 – 自我安装
>并安装了PHP-mcrypt.

有没有其他人以前经历过这种行为?任何人对如何解决它有任何想法?

最佳答案
我有同样的问题.我在/ var / www / somesite中运行了一个带有doc root的网站,并希望将PHPmyadmin挂钩到网站上的某个子文件夹.我在Nginx中使用此配置尝试了这个:

root /var/www/somesite;

location /pma/ {
    alias /usr/share/PHPmyadmin/;
}

location ~ ^/pma/(.+\.PHP)${
    alias /usr/share/PHPmyadmin/$1;
    fastcgi_pass   unix:/tmp/PHPfpm.sock;
    fastcgi_index  index.PHP;
    fastcgi_param  SCRIPT_FILENAME  $request_filename;
    include fastcgi_params;
}

这似乎有效,除非我登录,就像你描述的那样,我只是再次看到了头版.没有错误,没有.如果我使用错误的密码登录,我会得到一个“无法登录MysqL服务器”的错误,正如您所期望的那样.


最后我做的是从fastcgi_params拖入所有内容,发现更改DOCUMENT_ROOT参数修复此问题.所以上面的Nginx-config改为:

root /var/www/somesite;

location /pma/ {
    alias /usr/share/PHPmyadmin/;
}

location ~ ^/pma/(.+\.PHP)${
    alias /usr/share/PHPmyadmin/$1;
    fastcgi_pass   unix:/tmp/PHPfpm.sock;
    fastcgi_index  index.PHP;
    fastcgi_param  SCRIPT_FILENAME  $request_filename;

    # From fastcgi_params
    fastcgi_param  QUERY_STRING       $query_string;
    fastcgi_param  REQUEST_METHOD     $request_method;
    fastcgi_param  CONTENT_TYPE       $content_type;
    fastcgi_param  CONTENT_LENGTH     $content_length;
    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
    fastcgi_param  REQUEST_URI        $request_uri;
    fastcgi_param  DOCUMENT_URI       $document_uri;
    fastcgi_param  DOCUMENT_ROOT      /usr/share/PHPmyadmin; # <-- Changed
    fastcgi_param  SERVER_PROTOCOL    $server_protocol;
    fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
    fastcgi_param  SERVER_SOFTWARE    Nginx/$Nginx_version;
    fastcgi_param  REMOTE_ADDR        $remote_addr;
    fastcgi_param  REMOTE_PORT        $remote_port;
    fastcgi_param  SERVER_ADDR        $server_addr;
    fastcgi_param  SERVER_PORT        $server_port;
    fastcgi_param  SERVER_NAME        $server_name;
    fastcgi_param  REDIRECT_STATUS    200;
}

(旁注:我认为这是Nginx的一个问题,你不能同时设置别名和doc root.实际上很奇怪.)

原文链接:https://www.f2er.com/nginx/435558.html

猜你在找的Nginx相关文章