Nginx phpmyadmin redirecting to / instead of /phpmyadmin upon login
I am having issues with my phpmyadmin on my nginx install.
When I enter <ServerIP>/phpmyadmin
and logs in, I get redirected to <ServerIP>/index.php?<tokenstuff>
instead of <ServerIP>/phpmyadmin/index.php?<tokenstuff>
Nginx config file:
user nginx;
worker_processes 5;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 2;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Default.conf:
server {
listen 80;
server_name _;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html;
try_files $uri =404;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/tmp/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
}
(Any general tips on tidying op those config files are accepted too)
Solution 1:
This doesn't sound like an nginx issue. This sounds like phpMyAdmin wasn't installed correctly and thinks that it is at /
instead of /phpmyadmin
. Check your phpMyAdmin configuration.
Solution 2:
Even though the author has solved his problem reinstalling phpMyAdmin, nginx needs to be properly configurated to handle the redirect upon login correctly.
After days smashing my head on the keyboard I finally found the real solution and I'm sharing here as this thread still have high priority on google search.
As stated on the link : http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374
To solve the problem, you should add the following block of code to your nginx default site-available, you will access it with :
sudo nano /etc/nginx/sites-available/default
Place this block in server
block:
# Phpmyadmin Configurations
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_param HTTPS on; # <-- add this line
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
# Dealing with the uppercased letters
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
I hope this helps someone one day...
Solution 3:
This problem is caused by the common configuration of cgi.fix_pathinfo = 0 that disables the current path for PHP-FPM. One quick solution is to change cgi.fix_pathinfo back to 1, or set the path parameters on the virtual server block of nginx.
Solution 4:
You're problem seems to be similar to this: https://stackoverflow.com/questions/1011101/nginx-location-directive-doesnt-seem-to-be-working-am-i-missing-something
If by reading that and changing you're config you still have problems please do tell!
Solution 5:
open:
/var/lib/phpMyAdmin/config.inc.php
add:
$cfg['PmaAbsoluteUri'] = 'https://www.example.net/path_to_your_phpMyAdmin_directory/';
see:
https://docs.phpmyadmin.net/en/latest/config.html#basic-settings
.