Ceci est une ancienne révision du document !
Table des matières
WIMS et NGINX
Wims fonctionne en tant que script CGI derrière un serveur Web. Habituellement, le serveur Web utilisé est Apache. Mais il pourrait arriver que vous désiriez en utiliser un autre. Je vais vous expliquer ici la procédure pour faire fonctionner WIMS derrière un serveur Nginx.
Vous pouvez choisir 2 méthodes :
- créer un wrapper cgi
- ou utiliser Nginx comme proxy vers Apache
Méthode n°1 : le wrapper CGI
Nginx ne dispose pas nativement de cgi, il faut donc créer un wrapper cgi Il existe là encore plusieurs méthodes. Pour ma part, j'ai opté après plusieurs essais pour celle qui me semble la plus simple. Elle est décrite ici : http://www.howtoforge.com/serving-cgi-scripts-with-nginx-on-debian-squeeze-ubuntu-11.04-p3
Commencez-donc par installer le package fcgiwrap :
apt-get install fcgiwrap
Modifiez ensuite votre fichier nginx.conf pour qu'il ressemble à ceci :
server { server_name VOTRE_DNS; location / { root /home/wims/public_html; index wims.cgi; } location ~ ^/wims.*$ { # Disable gzip (it makes scripts feel slower since they have to complete before getting gzipped) gzip off; # Set the root to /usr/lib (we are giving access to the files under this location) root /home/wims/public_html; # Fastcgi socket fastcgi_pass unix:/var/run/fcgiwrap.socket; # Fastcgi parameters, include the standard ones include conf/fastcgi.conf; } }
(éventuellement, adaptez le chemin “include conf/fastcgi.conf;” pour qu'il pointe vers le bon emplacement du fichier fastcgi.conf )
Relancez nginx:
/etc/init.d/nginx reload
Et c'est tout. Votre serveur WIMS devrait tout à fait être accessible à l'adresse que vous aurez défini sous “VOTRE_DNS”.
NB : si vous désirez modifier l'utilisateur utilisé par nginx, procédez ainsi : * votre fichier “nginx.conf” devra contenir ceci :
user VOTRE_USER;
* Et le script /etc/init.d/fcgiwrap devra contenir ceci :
FCGI_USER="VOTRE_USER" FCGI_GROUP="VOTRE_GROUPE"
Relancez alors fastcgi et nginx (via l'administrateur):
/etc/init.d/fcgiwrap restart /etc/init.d/nginx reload
Au cas ou, vérifiez que le socket fastcgi appartient bien au nouvel utilisateur (sinon, supprimez-le avant de relancer) :
/var/run/fcgiwrap.socket
Méthode n°2 : proxy Apache
Il est possible d'accélèrer pas mal les choses en laissant NGINX s'occuper de tout le contenu statique (css, images, etc..) et en ne laissant que les pages dynamiques (le cgi) à apache. ça économise de la RAM en évitant de lancer un process/thread apache à chaque image/css.
N'ayant pas testé cette solution, je ne la détaillerai pas, mais il est intéressant de savoir qu'elle existe, et si d'aventure vous la mettez en oeuvre, n'hésitez-pas à venir compléter cette doc…