最近我一直在尝试使用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.实际上很奇怪.)