Configurando o phpMyAdmin com o nginx (Fedora 17) para acesso em localhost / phpmyadmin

1

[Tentei todas as respostas no Stackoverflow, e pesquisei muito no google, mas nenhuma das configurações funcionou.]

Eu instalei o servidor LEMP no Fedora usando o guia no DigitalOcean ( link ). Substituído example.com no default.conf do nginx para localhost.

Depois, instalei o phpMyAdmin usando este ( link ).

O diretório da Web nginx é / usr / share / nginx / html . Eu criei um link simbólico para o phpmyadmin. Está em / usr / share / nginx / html / phpMyAdmin .

Atualmente, eu só preciso de acesso localhost ( localhost / phpmyadmin ). Eu sou capaz de acessar localhost e localhost / info.php.

Eu tentei várias configurações, uma delas abaixo: A diretiva de localização do Nginx não parece estar funcionando. Estou faltando alguma coisa?

Mas isso não funciona. Às vezes eu recebo "Nenhum arquivo de entrada especificado". e outras vezes 404 não encontrados. Eu gostaria de ter o acesso em localhost / phpmyadmin .

Editar: Meu arquivo default.conf. Obtendo um "Nenhum arquivo de entrada especificado". erro no navegador.

#
# The default server
#
server {
    #listen       80 default_server;
    listen  80;
    server_name localhost;
    #server_name  _;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index index.php index.html index.htm;
    }

    location /phpmyadmin {
        alias /usr/share/nginx/html/phpMyAdmin;
        index index.php index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ /phpMyAdmin/.*\.php$ {
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /usr/share/nginx/html/$uri;
        include     fastcgi_params;
    }

    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

Obrigado.

    
por HyprGeek 16.03.2013 / 18:10

1 resposta

1

Para o seu 404 , você deve fazer com que os casos de caracteres correspondam a todos os phpmyadmin (todos minúsculos) ou phpMyAdmin .

Para tornar a configuração mais clara (minha opinião), você pode usar o aninhado location s:

location /phpmyadmin/ {
    index index.php index.html index.htm;

    location ~ \.php$ {
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME /usr/share/nginx/html/$uri;
        include     fastcgi_params;
    }
}

Você então precisa vincular phpMyAdmin em sua webroot (observe a diretiva alias ausente):

unlink /usr/share/nginx/html/phpMyAdmin
ln -s /usr/share/phpMyAdmin /usr/share/nginx/html/phpmyadmin

Como alternativa , para manter o link de caso misto, adicione essa linha ao location /phpmyadmin acima para alterar internamente o $uri (necessário para localizar os arquivos):
rewrite ^/phpmyadmin(.*)$ /phpMyAdmin$1;

Para corrigir o 500 , você pode querer verificar outra outra resposta no SF sobre as restrições do PHP . Acabei de perceber que a execução de scripts PHP fora da webroot pode acionar mecanismos de segurança.
Isso seria, então, um erro do PHP, o que significa que o location corresponde.     
por 18.03.2013 / 02:05