Wordpress utilise un système de réécriture d’URL bien spécifique. Ainsi, lorsque l’on installe le CMS à la racine de son espace Web, tout fonctionne Out Of The Box. Mais lorsqu’il est nécessaire de l’installer dans un sous dossier, quelques ajustements sont nécessaires.
Configuration par défaut pour utiliser Wordpress sous Nginx
La configuration Nginx par défaut pour un vhost Wordpress est relativement simple à trouver. Voici donc un exemple qui est basé sur PHP FPM, avec un Pool FPM dédié, ainsi qu’une redirection des flux web HTTP vers HTTPS, compatible HTTP2 :
upstream monsiteweb.com { server unix:/var/run/php/monsiteweb.com.sock; } server { listen 80; server_name monsiteweb.com; return 301 https://monsiteweb.com$request_uri; access_log /var/www/html/monsiteweb.com/log/nginx/access.log combined if=$log_ua; error_log /var/www/html/monsiteweb.com/log/nginx/error.log notice; } server { listen 443 ssl http2; server_name monsiteweb.com; set $root "/var/www/html/monsiteweb.com/web"; root $root; index index.php index.html; client_max_body_size 256M; include snippets/maintenance.conf; include snippets/static_files.conf; #include snippets/exclusion.conf; #include snippets/errors.conf; include snippets/letsencrypt.conf; include snippets/logging.conf; ssl_certificate /etc/letsencrypt/live/monsiteweb.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/monsiteweb.com/privkey.pem; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; location / { try_files $uri $uri/ /index.php?$args; add_header 'Access-Control-Allow-Origin' '*'; add_header 'Accept-Encoding' 'gzip'; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 600; include fastcgi.conf; fastcgi_pass monsiteweb.com; } access_log /var/www/html/monsiteweb.com/log/nginx/access.log combined if=$log_ua; error_log /var/www/html/monsiteweb.com/log/nginx/error.log notice; }
Configuration Nginx pour Wordpress dans un sous dossier
Pour la mise en place d’un Wordpress dans un sous dossier, admettons qu’un site statique ou un autre CMS soit déjà en place à la racine, une nouvelle location doit être ajoutée :
upstream monsiteweb.com { server unix:/var/run/php/monsiteweb.com.sock; } server { listen 80; server_name monsiteweb.com; return 301 https://monsiteweb.com$request_uri; access_log /var/www/html/monsiteweb.com/log/nginx/access.log combined if=$log_ua; error_log /var/www/html/monsiteweb.com/log/nginx/error.log notice; } server { listen 443 ssl http2; server_name monsiteweb.com; set $root "/var/www/html/monsiteweb.com/web"; root $root; index index.php index.html; client_max_body_size 256M; include snippets/maintenance.conf; include snippets/static_files.conf; #include snippets/exclusion.conf; #include snippets/errors.conf; include snippets/letsencrypt.conf; include snippets/logging.conf; ssl_certificate /etc/letsencrypt/live/monsiteweb.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/monsiteweb.com/privkey.pem; proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k; location /mondossierwordpress { try_files $uri $uri/ /mondossierwordpress/index.php?$args; } location / { try_files $uri $uri/ /index.php?$args; add_header 'Access-Control-Allow-Origin' '*'; add_header 'Accept-Encoding' 'gzip'; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 600; include fastcgi.conf; fastcgi_pass monsiteweb.com; } access_log /var/www/html/monsiteweb.com/log/nginx/access.log combined if=$log_ua; error_log /var/www/html/monsiteweb.com/log/nginx/error.log notice; }
Vues : 31