Recently I've been trying to set up a web server using Nginx (I normally use Apache). However I've ran into a problem trying to set phpMyAdmin up on an alias. The alias correctly takes you too the phpMyAdmin login screen, however when you enter valid credentials and hit go you end up back on the login screen with no errors.
Sounded like a cookie or session problem to me… but if I symlink the phpMyAdmin directory and try logging in through the symlinked version it works fine! Both the symlink and the alias one set the same number of cookies and both set seem to set the cookies for the correct domain and path.
My Nginx config for the php alias is as follows:
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;
}
- I'm running Nginx 0.8.53
- PHP 5.3.3
- MySQL 5.1.47
- phpMyAdmin 3.3.9 – self install
- And php-mcrypt is installed.
Has anyone else experienced this behaviour before? Anyone have any ideas about how to fix it?
Best Answer
I had the exact same problem. I ran a website with a doc root in
/var/www/somesite
and wanted to hook phpmyadmin to some sub-folder on the site. I tried this with this config in nginx:This seemed to work, except when I logged in, like you described, I just saw the front page again. No errors, nothing. If I logged in with a bad password, I got a "Cannot login to MySQL server"-error, as you'd expect.
Solution
Finally what I did was I dragged in all the stuff from
fastcgi_params
and found that changing theDOCUMENT_ROOT
-parameter fixed this. So the nginx-config above changed to:(Side note: I think this a problem with nginx, that you can't set an alias and the doc root at the same time. Weird, actually.)