Я потратил почти весь день на отладку этой проблемы: моя установка phpmyadmin выдает ошибку 404, когда я запускаю ее с помощью Nginx. Я погуглил несколько страниц в Интернете, но решение не помогло. Однако, когда я запускаю phpmyadmin как домен, он работает !!
Я хочу получить доступ к phpmyadmin как к каталогу, например http: // my-server-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;
}
}