Я потратил почти весь день на отладку этой проблемы с моей установкой phpmyadmin с ошибкой 404, когда я запускаю ее с помощью Nginx. Я просмотрел несколько страниц в Интернете, но решение не помогло. Однако, когда я запускаю phpmyadmin как домен, он работает !!
Я хочу получить доступ к phpmyadmin как к каталогу, например http: // мой-сервер-ip / phpmyadmin
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location /phpmyadmin {
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
root /usr/share/phpmyadmin;
index index.php;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin/index.php;
fastcgi_param SCRIPT_NAME /index.php;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
}
}
У вас 404, потому что nginx ищет 'phpmyadmin'в' / usr / share /phpmyadmin/ '. Это означает '/ usr / share /phpmyadmin / phpmyadmin'Заменить' root 'на' alias ' https://nginx.ru/en/docs/http/ngx_http_core_module.html#alias решить это.
пример:
location /phpmyadmin {
alias /usr/share/phpmyadmin;
index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin/index.php;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_pass php-fpm;
}
Наконец-то я заставил его работать со следующей конфигурацией;
server {
listen 80 default_server;
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
# Main application:
root /var/www/html;
index index.php index.html index.htm;
# phpMyAdmin:
location /phpmyadmin {
root /usr/share;
index index.php;
}
# PHP files for phpMyAdmin:
location ~ ^/phpmyadmin(.+\.php)$ {
root /usr/share;
index index.php;
#fastcgi_read_timeout 300;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
# PHP files for the main application:
location ~ \.php$ {
fastcgi_read_timeout 300;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
}
}