Le wiki de WIMS EDU

L'association WIMS EDU a ouvert ce wiki afin de favoriser les collaborations entre utilisateurs de WIMS.

Outils pour utilisateurs

Outils du site


installation:wims_et_nginx

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
installation:wims_et_nginx [05/06/2014 11:32] – [Méthode n°1 : le wrapper CGI] obadoinstallation:wims_et_nginx [23/09/2022 16:40] (Version actuelle) – [Méthode n°1 : le wrapper CGI] bernadette
Ligne 1: Ligne 1:
 ====== WIMS et NGINX ====== ====== WIMS et NGINX ======
  
 +Wims fonctionne en tant que script CGI derrière un serveur Web.
 +Habituellement, le serveur Web utilisé est Apache. Ce dernier est l'outil préconisé par WIMS, et pour lequel la configuration est automatique.
  
- + À titre expérimentalnous vous expliquons cependant ici une procédure pour faire fonctionner WIMS derrière un serveur Nginx.
-Wims fonctionne en tant que script CGI derrière un serveur Web. +
-Habituellementle 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 :  Vous pouvez choisir 2 méthodes : 
   * créer un wrapper cgi   * créer un wrapper cgi
   * ou utiliser Nginx comme proxy vers Apache   * ou utiliser Nginx comme proxy vers Apache
- 
  
 ==== Méthode  n°1 : le wrapper CGI ==== ==== Méthode  n°1 : le wrapper CGI ====
-Nginx ne dispose pas nativement de cgi, il faut donc créer un wrapper cgi+Nginx ne dispose pas nativement de cgi, il faut donc créer un wrapper cgi.
 Il existe là encore plusieurs méthodes.  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 :  Pour ma part, j'ai opté après plusieurs essais pour celle qui me semble la plus simple. Elle est décrite ici : 
Ligne 18: Ligne 17:
  
 Commencez-donc par installer le package fcgiwrap : Commencez-donc par installer le package fcgiwrap :
-  apt-get install fcgiwrap +<code bash>apt-get install fcgiwrap</code>
- +
- +
- +
-Modifiez ensuite votre fichier nginx.conf pour qu'il ressemble à ceci :+
  
 +Créez ensuite un fichier ''/etc/nginx/conf.d/wims.conf'' (ou si vous avez le dossier ''/etc/nginx/sites-enabled'' avec symlinks vers ''/etc/nginx/sites-available'', un fichier ''/etc/nginx/sites-available/wims.conf'' et son lien dans ''/etc/nginx/sites-enabled'') en y insérant ceci (remplacez "VOTRE_NOM_DE_DOMAINE" par votre nom de domaine):
 +<code nginx wims.conf>
     server     server
         {         {
-        server_name    VOTRE_DNS;+        server_name    VOTRE_NOM_DE_DOMAINE; 
 +        error_log      /var/log/nginx_wims_error.log; 
 +        access_log     /var/log/nginx_wims_access.log;
                  
         location / {         location / {
Ligne 37: Ligne 36:
              gzip off;              gzip off;
                            
-             # Set the root to /usr/lib (we are giving access to the files under this location)+             # Set the root directory (we are giving access to the files under this location)
              root  /home/wims/public_html;              root  /home/wims/public_html;
                            
Ligne 44: Ligne 43:
                            
              # Fastcgi parameters, include the standard ones              # Fastcgi parameters, include the standard ones
-             include conf/fastcgi.conf;+             fastcgi_param SCRIPT_FILENAME /home/wims/public_html/wims.cgi; 
 +             include /etc/nginx/fastcgi_params;
            }            }
                                        
         }         }
 +</code>
 +//(éventuellement, adaptez le chemin "include /etc/nginx/fastcgi_params;" pour qu'il pointe vers le bon emplacement du fichier fastcgi_params)//     
 +   
 +Créer les liens symboliques, dans le dossier public_html de wims (il devrait déjà y avoir un symlink wims.cgi -> wims)
 +<code bash>for s in gif html jpeg jpg png; do ln -s wims wims.$s; done</code>
  
-//(éventuellement, adaptez le chemin "include conf/fastcgi.conf;" pour qu'il pointe vers le bon emplacement du fichier fastcgi.conf )//      
-    
 Relancez nginx: Relancez nginx:
-  /etc/init.d/nginx reload+<code bash>/etc/init.d/nginx reload</code>
      
      
-Et c'est tout. Votre serveur WIMS devrait tout à fait être accessible à l'adresse que vous aurez défini sous "VOTRE_DNS".+Votre serveur WIMS devrait désormais être accessible à l'adresse que vous aurez défini avec "VOTRE_NOM_DE_DOMAINE". 
 + 
 +NB : si vous désirez modifier l'utilisateur utilisé par nginx (pour tous les domaines qu'il gère), procédez ainsi :
  
-NB : si vous désirez modifier l'utilisateur utilisé par nginx, procédez ainsi :  
 * votre fichier "nginx.conf" devra contenir ceci :  * votre fichier "nginx.conf" devra contenir ceci : 
-  user VOTRE_USER+  user votre_user; 
-* Et le script /etc/init.d/fcgiwrap devra contenir ceci : +   
-  FCGI_USER="VOTRE_USER+* Et le script /etc/init.d/fcgiwrap devra contenir ceci (modifiez les lignes existantes)
-  FCGI_GROUP="VOTRE_GROUPE"+  FCGI_USER="votre_user
 +  FCGI_GROUP="votre_user_group" 
 +  FCGI_SOCKET_OWNER="votre_user" 
 +  FCGI_SOCKET_GROUP="votre_user_group" 
 +  
      
 Relancez alors fastcgi et nginx (via l'administrateur): Relancez alors fastcgi et nginx (via l'administrateur):
Ligne 68: Ligne 76:
   /etc/init.d/nginx reload   /etc/init.d/nginx reload
      
-Au cas ouvérifiez que le socket fastcgi appartient bien au nouvel utilisateur (sinonsupprimez-le avant de relancer +=== Variante pour systemd === 
-  /var/run/fcgiwrap.socket+Avec systemdles scripts d'init sont dans ''/lib/systemd/system/'', pour laisser fcgiwrap intact (au cas où un autre voudrait l'utiliser) et créer un service dédié à wimsune fois installé fcgiwrap, ajouter deux fichiers (remplacer ''/var/www/wims'' par le dossier de wims, on y place pid et socket pour que fcgiwrap n'ait pas de pbs de droits
 + 
 +<file autoconf /lib/systemd/system/wimsfcgiwrap.service> 
 +[Unit] 
 +Description=Simple CGI Server for wims 
 +After=nss-user-lookup.target 
 +Requires=wimsfcgiwrap.socket 
 + 
 +[Service] 
 +ExecStart=/usr/sbin/fcgiwrap 
 +PIDFile=/var/www/wims/wimsfcgiwrap.pid 
 +User=wims 
 +Group=wims 
 + 
 +[Install] 
 +Also=wimsfcgiwrap.socket 
 +</file> 
 + 
 +<file autoconf /lib/systemd/system/wimsfcgiwrap.socket> 
 +[Unit] 
 +Description=fcgiwrap Socket for wims 
 + 
 +[Socket] 
 +ListenStream=/var/www/wims/wimsfcgiwrap.socket 
 + 
 +[Install] 
 +WantedBy=sockets.target 
 +</file> 
 + 
 +La conf nginx reste identique (au chemin près), mais pour (re)démarrer le service wimsfcgiwrap ça passe par les commande ''systemctl start|stop|restart|reload|status|etc. wimsfcgiwrap'' 
 ==== Méthode n°2 :  proxy Apache ==== ==== 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. 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.
installation/wims_et_nginx.1401967948.txt.gz · Dernière modification : 05/06/2014 11:32 de obado