phpMyAdmin 404 not found Nginx
Если у Вас уже установлен и Nginx и phpMyAdmin, но при заходе на адрес http://ВАШ_ХОСТ/phpmyadmin возникает 404 ошибка (404 Not Found), то информация ниже будет для Вас.
Решение несложное, нужно лишь добавить немного строчек в конфигурацию Nginx.
Открываем файл /etc/nginx/sites-available/default, и добавляем в конец файла эти строки:
server {
listen 80;
server_name localhost;
access_log /var/log/phpmyadmin.access_log;
error_log /var/log/phpmyadmin.error_log;
location ^~ /phpmyadmin/ {
alias /usr/share/phpmyadmin/;
index index.php;
location ~ /phpmyadmin(/.*\.php) {
include fastcgi.conf;
fastcgi_param SERVER_NAME localhost;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$1;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}
}
И тут сразу же нужны комментарии. Строчка ниже говорит о том, что все эти правила будут применяться к localhost:
server_name localhost;
Т. е. Вы сможете перейти в phpMyAdmin по адресу:
http://IP вашего сервера/phpmyadmin/
Если вместо localhost Вы укажите yoursite.ru, то адрес phpMyAdmin будет уже такой:
http://yoursite.ru/phpmyadmin/
И еще есть комментарии. Строчка ниже подразумевает, что Ваш php-fpm настроен на работу через TCP/IP, по адресу 127.0.0.1:9000:
fastcgi_pass 127.0.0.1:9000;
Это можно проверить в настройках php-fpm, открыв файл /etc/php/7.3(может быть другая версия)/fpm/pool.d/www.conf:
; listen = /run/php/php7.3-fpm.sock
listen = 127.0.0.1:9000
Выше представлены два варианта одной и той же настройки php-fpm (первая строка закомментирована).
Если Вы хотите, чтобы Nginx работал с php-fpm через сокет (как указано в закомментированной первой строке из примера выше), то в самом первом примере, нужно заменить строку:
fastcgi_pass 127.0.0.1:9000;
На:
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
Чтобы он совпадал с адресом из файла /etc/php/7.3(может быть другая версия)/fpm/pool.d/www.conf
Надеюсь, я смог чем-то помочь!