Ошибка 404 «Страница не найдена» при попытке доступа к phpMyAdmin может быть вызвана несколькими причинами, особенно в конфигурации Nginx. Давайте разберем вашу конфигурацию и предложим несколько возможных решений.
### Проблемы в конфигурации
1. **Неверный путь к `root` для phpMyAdmin**:
В вашем конфиге указан документ `root /usr/share/;`, а в блоке `location ~ ^/phpmyadmin/(.+\.php)$` вы указываете `root /usr/share/phpmyadmin;`. Однако в Nginx `root` работает по-другому. Правило `root` применяется на уровень, где оно указано, и его значения объединяются с URI. Попробуйте изменить `root` следующим образом:
```nginx
location /phpmyadmin {
root /usr/share; # здесь root указывает на /usr/share
index index.php;
}
```
2. **Проблемы с путями к файлам**:
Убедитесь, что phpMyAdmin действительно установлен в папке `/usr/share/phpmyadmin/`. Проверьте, что файл `index.php` существует в этой директории. Вы можете сделать это, выполнив команду:
```bash
ls /usr/share/phpmyadmin/
```
3. **Проблема с правильным проксированием PHP**:
Убедитесь, что Nginx может правильно обрабатывать PHP-файлы. Проверьте, что в конфигурации `fastcgi_param SCRIPT_FILENAME` указывает на правильный путь к файлам. Проверьте, правильно ли настроен PHP-FPM и доступен ли сокет:
```nginx
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
```
Попробуйте явно указать путь к phpMyAdmin в вашем `SCRIPT_FILENAME`:
```nginx
location ~ ^/phpmyadmin/(.+\.php)$ {
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin/$1;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
```
4. **Ошибки в кэше браузера**:
Иногда браузеры кэшируют старые версии страниц. Попробуйте очистить кеш браузера или открыть phpMyAdmin в режиме инкогнито.
### Пример исправленного конфигурационного файла
Исходя из вышеизложенного, вот пример исправленного фрагмента конфигурационного файла:
```nginx
location /phpmyadmin {
root /usr/share;
index index.php;
location ~ ^/phpmyadmin/(.+\.php)$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/phpmyadmin/$1;
}
location ~ ^/phpmyadmin/(.+\.(css|js|png|jpg|gif|ico|woff2?))$ {
root /usr/share/phpmyadmin;
}
}
```
### После изменений
После внесения изменений в конфигурацию, не забудьте протестировать конфигурацию на синтаксические ошибки и перезапустить Nginx:
```bash
sudo nginx -t # Проверка конфигурации на ошибки
sudo systemctl restart nginx # Перезапуск Nginx
```
Если после этих шагов ошибка не исчезнет, проверьте логи Nginx и PHP, чтобы получить больше информации о возможных проблемах:
```bash
# Логи Nginx
sudo tail -f /var/log/nginx/error.log
# Логи PHP
sudo tail -f /var/log/php8.3-fpm.log # Скорректируйте версию PHP, если необходимо
```
Если есть дальнейшие проблемы, предоставьте сообщения из логов, и мы поможем вам разобраться.