2014-11-01 11 views
5

Nginx i PHP5-FPM są zainstalowane i działa dobrze ...Ubuntu 14 - Nginx - PHP5-FPM: zainstalowany phpMyAdmin ale 403 zabroniony dostęp

# można uzyskać dostęp zarówno http://www.example.com i 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 

Zainstalowałem phpmyadmin i stworzył dowiązania do plików phpmyadmin

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

ale próbujących dostać http://www.example.com/phpmyadmin => dostaję 403 Forbidden

używając dowiązania symbolicznego, nie powinienem dodawać niczego związanego z phpmyadmin do mojego pliku nginx.conf ... czego może brakować?

Aktualizacja 1: dodanie index.php do URI przynosi panel logowania

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

co należy dodać do mojego domyślnego pliku con aby ją bezpośrednio ... Chyba mój plik try jest nieprawidłowy. . tutaj jest moja domyślna witryna nginx plik con

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; 
     } 
    } 

Odpowiedz

0

Oto kilka rzeczy, można spróbować. Jednym z nich jest dyrektywa disable_symlinks:

location /phpmyadmin { 
    disable_symlinks off; 
} 

Inną opcją byłoby użyć aliasu zamiast dowiązania symbolicznego:

location /phpmyadmin { 
    alias /usr/share/phpmyadmin; 
} 
+0

dzięki za napiwek, spróbowałem, bt zawsze otrzymuję ten sam błąd w logu: indeks katalogu "/ var/www/html/phpmyadmin /" jest zabroniony, ... – erwin

+0

Czy masz 'index index.php 'w twoim bloku serwera? –

+0

Jeśli poprosimy o http://www.example.com/phpmyadmin/index.php TO otrzymam panel logowania ... Mam root/var/www/html; indeks index.php, index.html index.htm; w moim bloku serwera ... – erwin

8

to działa prawidłowo po dodaniu następującej lokalizacji:

 location /phpmyadmin { 
     index index.php; 
    } 
3

I dodano:

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; 
    } 
} 

Tak więc, gdy użytkownik uzyskuje dostęp do katalogu /pma/, zostaje skierowany do /usr/share/phpmyadmin, który jest również nieco bezpieczniejszą opcją! Tak jak poprzednio miałem też błąd 403!

Ale głównym poprawka dla błędu 403 faktycznie realizacji wiersz:

index index.html index.htm index.php; 
+0

zamiast "location/pma /" zmień na "location/pma", więc nie potrzebujesz "/". To po prostu powoduje zamieszanie podczas wpisywania adresu URL w przeglądarce ... dzięki .. –

+0

to działało dla mnie, ale tylko po wyczyszczeniu pamięci podręcznej przeglądarki –

0

stracić przecinek i jesteś w porządku

index index.php, index.html index.htm; 
5

To moje rozwiązanie tego problemu :

Krok 1: Należy SSH i uruchomić polecenie

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

Step 2: znaleźć kod blok

server { 
    .... 
} 

a następnie wstawić przed "}" bloku serwera

location /phpmyadmin { 
      index index.php; 
    } 

to wyglądać to

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

Mam nadzieję, że to twoje!

Powiązane problemy