Configuration automatique de Nginx
Important : Cette procédure s'adresse aux utilisateurs d'un NAS Asustor ayant rencontré des difficultés après la mise à jour vers
ADM version 5.0.0.RHN2.
Avant cette mise à jour, la partie Web du NAS permettait d’héberger des sites en PHP 7.3. Après la mise à jour, seul PHP 8 ou supérieur est accepté. Cela peut entraîner :
- Une erreur 500 si vous utilisez encore Apache HTTP Server.
- Une erreur 404 avec Nginx si la configuration n’est pas adaptée.
Étapes de résolution et script d'automatisation
Voici les étapes suivies pour corriger la configuration de Nginx et éviter ces erreurs :
1. Créer un fichier de configuration personnalisé
user@NAS:/volume1/home/user $ mkdir -p nginx<br>user@NAS:/volume1/home/user/nginx $ nano vhost_mon-site.fr_443.conf
Contenu :
server {<br> listen 443 ssl http2;<br> listen [::]:443 ssl http2;<br> ssl_certificate /usr/builtin/etc/certificate/ssl/.../ssl.crt;<br> ssl_certificate_key /usr/builtin/etc/certificate/ssl/.../ssl.key;<br> root "/volume1/Web/wordpress";<br> server_name mon-site.fr;<br> index index.php index.html index.htm;<br> autoindex on;<br><br> location ~ \.php$ {<br> include fastcgi_params;<br> fastcgi_pass unix:/usr/local/AppCentral/php8.1/etc/socket/php-fpm.sock;<br> fastcgi_index index.php;<br> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br> }<br><br> location / {<br> try_files $uri $uri/ /index.php?$args;<br> }<br>}
2. Créer un script de remplacement automatique
user@NAS:/volume1/home/user $ sudo nano /usr/local/bin/fix_nginx_config.sh
Contenu :
#!/bin/sh<br><br>TARGET="/usr/local/AppCentral/nginx-1.18.0/data/conf/sites-available/vhost_mon-site.fr_443.conf"<br>SOURCE="/volume1/home/user/nginx/vhost_mon-site.fr_443.conf"<br><br>cp -f "$SOURCE" "$TARGET"<br><br>NGINX_PIDS=$(pgrep -f "nginx.*conf")<br><br>if [ -n "$NGINX_PIDS" ]; then<br> for pid in $NGINX_PIDS; do<br> kill -HUP "$pid"<br> done<br>else<br> echo "Nginx ne semble pas démarré, impossible de le recharger."<br>fi
3. Rendre le script exécutable
sudo chmod +x /usr/local/bin/fix_nginx_config.sh
4. Ajouter le script au démarrage
Créer un fichier dans/usr/local/etc/rc.d/:
sudo nano /usr/local/etc/rc.d/S99fix_nginx_config.sh
Contenu :
#!/bin/sh<br>/usr/local/bin/fix_nginx_config.sh
sudo chmod +x /usr/local/etc/rc.d/S99fix_nginx_config.sh
Cette méthode permet de reconfigurer automatiquement Nginx à chaque redémarrage du NAS pour éviter les erreurs de type 404.
Conclusion
Grâce à ce correctif, Nginx accepte PHP 8.1 via son socket et gère correctement les requêtes/en les redirigeant versindex.php, évitant les erreurs 404. Ce type de correction est indispensable depuis ADM 5.0.0, qui ne prend plus en charge PHP 7.3.
Correctif Nginx