nginx phpmyadmin 404

nginx phpmyadmin 404

Estou tentando instalar o phpmyadmin no meu servidor web nginx. Instalei o phpmyadmin sem problemas. Eu criei um subdomínio para ele. Por razões de segurança não chamei meu subdomínio de "phpmyadmin", usei um nome diferente. Então usei esta configuração para meu subdomínio

server {
    listen   80;
    server_name myphpmyadminsubdomain.domain.com;
    access_log off;
    error_log /srv/www/myphpmyadminsubdomain/error.log;

    location / {
                root   /usr/share/phpmyadmin;
                index  index.php;
                }

location ~ \.php$ {
    try_files $uri =404;

    fastcgi_split_path_info ^(.+\.php)(/.+)$;

    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#   fastcgi_intercept_errors on;
    fastcgi_pass php;
}

location = /favicon.ico {
    log_not_found off;
    access_log off;
}

location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}

location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
}
      }

Então eu habilitei assim;

/etc/nginx/sites-available/myphpmyadminsubdomain /etc/nginx/sites-enabled/myphpmyadminsubdomain

Eu reiniciei o nginx e fui para myphpmyadminsubdomain.domain.com e isso está me dando o erro nginx 404 Not Found.

O que estou fazendo de errado?

Responder1

Esta é a minha configuração

server {
    listen 80; ## listen for ipv4
    server_name pma.example.com;
    access_log /var/log/nginx/pma.access.log;
    error_log       /var/log/nginx/pma.error.log;
    root /server/phpmyadmin/phpMyAdmin-3.4.2-all-languages;

    location / {
            index index.php index.html;
    }

    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include /etc/nginx/fastcgi_params;
            fastcgi_intercept_errors off;
            fastcgi_pass php;
    }

}

A raiz deve ser alterada para /usr/share/phpmyadmine fastcgi_paramsdeve ser alterada apropriadamente.

Responder2

Geralmente é um problema de caminho. No conjunto nginx.conf

fastcgi_param SCRIPT_FILENAME /absolute/path/to/server/root$fastcgi_script_name;

Observe que não há barra após o último diretório do caminho. Em segundo lugar, fastcgi_pass para um soquete ou URL local.

Você está fazendo chroot no seu php-cgi? Então todos os caminhos devem ser relativos a esse chroot.

informação relacionada