Назад | Перейти на главную страницу

Получение ошибки 404 при запуске phpmyadmin в качестве подкаталога с использованием Nginx

Я потратил почти весь день на отладку этой проблемы с моей установкой 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;
    }
}