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

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

}
0
задан 26 June 2018 в 19:57
2 ответа

Вы получили 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;
    }
1
ответ дан 4 December 2019 в 15:54

Наконец-то я заставил его работать со следующей конфигурацией;

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;
    }
}
0
ответ дан 4 December 2019 в 15:54

Теги

Похожие вопросы