Ubuntu 14 - Nginx - PHP5-fpm: установлен phpmyadmin, но 403 запрещен доступ

Nginx и PHP5-FPM установлены и работают нормально...

# Я могу получить доступ как к http://www.example.com, так и к http://www.example.com/info.php

$ ls -la /var/www/html
 -rw-r--r-- 1 root root  868 Nov  1 08:16 index.html
 -rw-r--r-- 1 root root   21 Nov  1 08:13 info.php

Я установил phpmyadmin и создал символическую ссылку на файлы phpmyadmin.

 lrwxrwxrwx 1 root root   21 Nov  1 08:37 phpmyadmin -> /usr/share/phpmyadmin

но при попытке получить http://www.example.com/phpmyadmin => я получаю 403 Forbidden

используя символическую ссылку, мне не нужно было добавлять что-либо, связанное с phpmyadmin, в мой nginx.conf ... что может отсутствовать?

Обновление 1: добавление index.php к uri открывает панель входа

 http://www.example.com/phpmyadmin/index.php

что я должен добавить в мой файл con по умолчанию, чтобы получить его напрямую ... я думаю, что мой пробный файл недействителен .. вот мой файл con сайта nginx по умолчанию

    server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/html;
        index index.php, index.html index.htm;

        server_name example.com;

        location / {
            try_files $uri $uri/ index.html index.php  =404;
        }

        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /var/www/html;
        }

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }
    }

person Community    schedule 01.11.2014    source источник


Ответы (6)


он работает нормально после добавления следующего местоположения:

     location /phpmyadmin {
       index index.php;
    }
person Community    schedule 02.11.2014

Это мое решение этой проблемы:

Шаг 1. Вы должны использовать SSH и выполнить команду

sudo nano /etc/nginx/sites-available/default

Шаг 2: найдите код блокировки

server {
  ....
}

а затем вставьте перед "}" блока сервера

    location /phpmyadmin {
            index index.php;
    }

Это выглядит так

server{
       ...(your default)...
       location /phpmyadmin {
                index index.php;
       }
}

Надеюсь, это ваше!

person Vo Quoc Cuong    schedule 15.07.2016

Я добавил:

location /pma/ {
    alias /usr/share/phpmyadmin/;

    index index.html index.htm index.php;

    location ~ ^/pma(.+\.php)$ {
        alias /usr/share/phpmyadmin$1;
        fastcgi_pass unix:/var/run/php5-fpm.sock; #OR fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$1;
        include fastcgi_params;
        fastcgi_intercept_errors        on;
    }
}

Таким образом, когда пользователь получает доступ к каталогу /pma/, он перенаправляется в каталог /usr/share/phpmyadmin, что также является немного «более безопасным» вариантом! Как и раньше, у меня тоже была ошибка 403!

Но основное исправление ошибки 403 на самом деле реализует строку:

index index.html index.htm index.php;
person maxisme    schedule 27.03.2015
comment
вместо местоположения /pma/ измените местоположение /pma, поэтому нет необходимости /. Это просто сбивает вас с толку при вводе URL-адреса в браузере... спасибо.. - person Ye Lwin Soe; 20.01.2016
comment
это сработало для меня, но только после очистки кеша браузера - person Astra Bear; 22.07.2016

в файл nginx.conf или по умолчанию ( ../sites-available/default )

location /phpmyadmin {
       root /usr/share/;
       index index.php index.html index.htm;
       location ~ ^/phpmyadmin/(.+\.php)$ {
               try_files $uri =404;
               root /usr/share/;
               fastcgi_pass unix:/run/php/php7.0-fpm.sock;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               include /etc/nginx/fastcgi_params;
       }
       location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
               root /usr/share/;
       }
}
person Vyacheslav Zudvin    schedule 25.01.2019

Вот несколько вещей, которые вы можете попробовать. Одним из них является директива disable_symlinks:

location /phpmyadmin {
    disable_symlinks off;
}

Другой вариант — использовать псевдоним вместо символической ссылки:

location /phpmyadmin {
    alias /usr/share/phpmyadmin;
}
person Cole Tierney    schedule 01.11.2014
comment
спасибо за совет, я попробовал, но всегда получаю одну и ту же ошибку в журнале: индекс каталога /var/www/html/phpmyadmin/ запрещен, ... - person ; 01.11.2014
comment
У вас есть index index.php в вашем серверном блоке? - person Cole Tierney; 01.11.2014
comment
Если я запрошу example.com/phpmyadmin/index.php, ТОГДА я получу панель входа ... у меня есть корень /var/www/html; индекс index.php, index.html index.htm; в моем серверном блоке... - person ; 01.11.2014
comment
Вы используете try_files? Вы можете попробовать добавить к нему index.php. - person Cole Tierney; 01.11.2014
comment
У меня есть try_files , но в / location... У меня нет ничего для местоположения / phpmyadmin ... только символическая ссылка, мне нужно что-то добавить в мой файл con nginx? Спасибо - person ; 01.11.2014

Убери запятую и все в порядке

    index index.php, index.html index.htm;
person Tõnis Bramanis    schedule 11.09.2015