phpmyadmin proibido em Nginx embora permitido

1

Não consigo entender porque a entrada para o PHPmyadmin é proibida ( http://my_ip/phpmyadmin ). Aqui está o que eu fiz para instalá-lo:

Em uma máquina Ubuntu 16.04 pura (servidor, xenial) eu instalei o LEMP com o php-fpm 7.0. Nginx conf é padrão:

apt-get update -y
apt-get upgrade nginx mysql-server php-fpm php-mysql -y

Eu então instalei o PMA e permitiu :

DEBIAN_FRONTEND=noninteractive apt-get upgrade phpmyadmin php-mbstring php-mcrypt -y
ln -s /usr/share/phpmyadmin/ /var/www/html/
chown -R www-data:www-data /usr/share/phpmyadmin/ /var/www/html
chmod -R a-x,a=rX,u+w /usr/share/phpmyadmin/ /var/www/html

Eu realmente não consigo entender o que está errado no log de erros:

directory index of "/var/www/html/phpmyadmin/" is forbidden

O que pode causar a PMA a ser proibida?

Atualização - geral:

Atualização para Jenny:

Eu removi o symlink e adicionei este conf dentro do bloco http em nginx.conf e reiniciei o servidor, mas nenhuma mudança foi vista:

server {    
    location /phpmyadmin {
        index index.php index.html index.htm;
        root /usr/share;
    }
}
    
por pntshere 30.01.2018 / 06:22

2 respostas

2

Quando você liga simbolicamente a um diretório, você está dizendo ao nginx que "quando você precisa usar /var/www/html/phpmyadmin , você deve olhar para /usr/share/phpmyadmin/ . E esse diretório não está sob o diretório webroot, então o nginx não estará usando isso.

Em vez de usar um symlink, diga ao nginx para começar a usar esse diretório diretamente. Exemplo:

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

Isso dirá ao nginx que o local /phpmyadmin vive sob /usr/share em vez de /var/www/html/ .

Ou, se os sistemas de arquivos /usr/ e /var/ estiverem na mesma partição, você poderá fazer um link físico em vez de um link simbólico. Mas isso provavelmente causará problemas para você se você alterar o layout da partição.

    
por 30.01.2018 / 10:10
0

A mensagem

directory index of "/var/www/html/phpmyadmin/" is forbidden

indica que o nginx não consegue encontrar o documento de índice configurado, por isso tenta listar os arquivos (o que é proibido).

Verifique sua diretiva index na configuração do nginx. Deve conter index.php para o phpMyAdmin.

Exemplo:

index index.php index.html index.htm;
    
por 30.01.2018 / 09:27