Nginx et PHP5-FPM sont installés et fonctionnent bien ...
# Je peux accéder aux deux http://www.example.com et 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
J'ai installé phpmyadmin et créé un lien symbolique vers des fichiers phpmyadmin
lrwxrwxrwx 1 root root 21 Nov 1 08:37 phpmyadmin -> /usr/share/phpmyadmin
mais en essayant d'obtenir http://www.example.com/phpmyadmin => je reçois un 403 Forbidden
en utilisant un lien symbolique, je ne devrais pas avoir à ajouter quoi que ce soit lié à phpmyadmin dans mon nginx.conf ... que pourrait-il manquer?
Mise à jour 1: l'ajout d'index.php à l'URI ouvre le panneau de connexion
http://www.example.com/phpmyadmin/index.php
que dois-je ajouter à mon fichier de configuration par défaut pour l'obtenir directement ... Je suppose que mon fichier d'essai n'est pas valide .. voici mon fichier de configuration du site nginx par défaut
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;
}
}
ça fonctionne bien après avoir ajouté l'emplacement suivant:
location /phpmyadmin {
index index.php;
}
C'est ma solution à ce problème:
Étape 1 : Vous devriez SSH et lancer la commande
Sudo nano /etc/nginx/sites-available/default
Étape 2 : trouver le code de bloc
server {
....
}
puis insère avant "}" du bloc serveur
location /phpmyadmin {
index index.php;
}
Ça ressemble à ça
server{
...(your default)...
location /phpmyadmin {
index index.php;
}
}
J'espère que c'est votre!
J'ai ajouté:
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;
}
}
Ainsi, lorsque l'utilisateur accède au répertoire /pma/
, il est également dirigé vers le /usr/share/phpmyadmin
, qui est également une option légèrement plus sûre! Comme précédemment, j'avais aussi l'erreur 403!
Mais le correctif principal pour l'erreur 403
est en réalité la mise en œuvre de la ligne:
index index.html index.htm index.php;
Perdez la virgule et tout va bien
index index.php, index.html index.htm;
Voici quelques choses que vous pourriez essayer. L'un est la directive disable_symlinks
:
location /phpmyadmin {
disable_symlinks off;
}
Une autre option serait d’utiliser un alias au lieu d’un lien symbolique:
location /phpmyadmin {
alias /usr/share/phpmyadmin;
}
dans le fichier nginx.conf ou par défaut (../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/;
}
}