J'essaie d'ajouter un site wikimedia sur mon serveur, qui contient déjà un autre site (qui n'utilise pas PHP). Je veux le mettre dans un dossier différent comme www.hostname.com/wiki mais il serait merveilleux d'avoir deux fichiers de conf différents pour éviter de mélanger les choses. En ce moment, j'essaie de mettre ce site wikimedia sur un port différent, le 81, et j'ai quelques problèmes.
Mon nginx.conf ressemble à ça :
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
index index.html index.htm index.php;
include /etc/nginx/conf.d/*.conf;
}
Et dans le dossier conf.d, j'ai deux fichiers :
site.conf qui ressemble à ceci :
server {
listen 80;
server_name hostname.com;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location /kibanaadmin/ {
proxy_pass http://localhost:5601/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
root /usr/share/nginx/html/pruebas/site;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Et wiki.conf fichier :
server {
listen 81;
server_name hostname.com;
root /usr/share/nginx/html/tests/mediawiki;
client_max_body_size 5m;
client_body_timeout 60;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ @rewrite;
autoindex on;
index index.html index.html index.php;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?title=$1&$args;
}
location ^~ /maintenance/ {
return 403;
}
location ~ \.php$ {
autoindex on;
include fastcgi_params;
fastcgi_pass unix:/tmp/phpfpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
try_files $uri /index.php;
expires max;
log_not_found off;
}
location = /_.gif {
expires max;
empty_gif;
}
location ^~ /cache/ {
deny all;
}
location /dumps {
root /usr/share/nginx/html/tests/mediawiki/local;
autoindex on;
}
}
J'ai remarqué deux problèmes différents :
La première est que, lorsque j'essaie de récupérer un fichier php, j'obtiens un 502 Bad Gateway et sur le error.log j'obtiens ce message :
2015/07/15 10:56:57 [crit] 16306#0 : *6 connect() to unix:/var/run/php-fpm/php-fpm.sock a échoué (2 : No such file or répertoire) lors de la connexion à upstream, client : 111.222.333.444, serveur : hostname.com, requête : "GET /info.php HTTP/1.1", upstream : "fastcgi://unix:/var/run/php-fpm/php-fpm.sock :", hôte : "hostname.com"
J'ai vérifié ma configuration php et je pense qu'elle est correcte, je ne sais pas si c'est un problème de configuration nginx ou PHP.
Le deuxième problème est que lorsque je vais sur hostname.com:81 j'obtiens et 403 Interdit (mon autre site dans hostname.com:80 fonctionne sans problème) et ce message de journal :
2015/07/15 10:59:15 [error] 16306#0 : *9 directory index of
"/usr/share/nginx/html/pruebas/" est interdit, client : 111.222.333.444, serveur : hostname.com, requête : "GET / HTTP/1.1", hôte : "hostname.com:81"
Ma question principale est la suivante : comment puis-je faire pour que le site wikimedia soit sur le port 80 ainsi que mon site, mais en utilisant deux fichiers de conf de nginx pour le faire (si ce n'est pas possible, comment puis-je le faire avec un seul fichier) et configurer correctement le truc PHP dans nginx ?
Note : Je pense que ce n'est pas un problème de permissions car j'ai donné les mêmes droits au site wikimedia qu'à l'autre site. J'utilise Centos 7.1. Merci d'avance.