doc web - MachiganMC/Woodytoys GitHub Wiki

guide de maintenance du serveur Web Interne

organisation des configurations/fichiers

Les fichiers requis pour le fonctionnement du service web interne sont dans le dossier "Woodytoys/Intranet/Web"

S'y trouvent:

  • Le Dockerfile (Woodytoys/Intranet/Web/Dockerfile) contenant les infos sur:
    • L'image de base
    • Le lieu de copie des pages du site web
  • le fichier de configuration du serveur nginx (Woodytoys/Intranet/Web/default.conf) contenant les infos sur:
    • Le port d'écoute du site
    • Le nom du serveur
    • Les routes des pages

ajout/modifications

Afin de rajouter un site au serveur, il faut d'abord creer le fichier de configuration du site: pour un site "www.exemple.com"

  1. créer le fichier "www.exemple.com.conf"

  2. Le remplir comme suit (modifiez ce qu'il y a entre "<>"):

     server {
         listen 80;
         server_name <www.exemple.com>;
    
         sendfile off;
         tcp_nodelay on;
         absolute_redirect off;
    
         root /var/www/<www.exemple.com>/html;
         index <index.php>;
    
         location / {
             # First attempt to serve request as file, then
             # as directory, then fall back to index.php
             try_files $uri $uri/ /index.php?q=$uri&$args;
         }
    
         # Redirect server error pages to the static page /50x.html
         error_page 500 502 503 504 /50x.html;
         location = /50x.html {
             root /var/lib/nginx/html;
         }
    
         # Pass the PHP scripts to PHP-FPM listening on php-fpm.sock
         location ~ \.php$ {
             try_files $uri =404;
             fastcgi_split_path_info ^(.+\.php)(/.+)$;
             fastcgi_pass unix:/run/php-fpm.sock;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             fastcgi_param SCRIPT_NAME $fastcgi_script_name;
             fastcgi_index index.php;
             include fastcgi_params;
         }
    
         # Set the cache-control headers on assets to cache for 5 days
         location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
             expires 5d;
         }
    
         # Deny access to . files, for security
         location ~ /\. {
             log_not_found off;
             deny all;
         }
    
         # Allow fpm ping and status from localhost
         location ~ ^/(fpm-status|fpm-ping)$ {
             access_log off;
             allow 127.0.0.1;
             deny all;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             include fastcgi_params;
             fastcgi_pass unix:/run/php-fpm.sock;
         }
     }
    
  3. Placez ce fichier dans le dossier "Woodytoys/Intranet/Web" de la machine ou vous avez le docker-compose

  4. Placez dans ce même dossier un nouveau dossier contenant les pages de votre site, il s'appellera www.exemple.com

  5. Dans le Dockerfile, il faut ajouter les lignes qui vont copier les config dans le conteneur:

     FROM trafex/php-nginx
     
     #Début lignes a rajouter
     COPY www.exemple.com/ /var/www/www.exemple.com/html/
     COPY www.exemple.com.conf /etc/nginx/sites-enabled/www.exemple.com.conf
     #Fin lignes a rajouter
    
     COPY nginx.conf /etc/nginx/nginx.conf
    
     EXPOSE 80
    
  6. Rebuildez le conteneur, puis relancez-le

"docker build " ou "docker-compose build"

puis

docker start " ou "docker-compose up"

Mises a jour

Afin de mettre a jour une config il faut

  1. Stopper le conteneur (docker stop nomDuConteneur)

  2. modifier le fichier désiré dans le dossier "Woodytoys/Intranet/Web" de la machine ou vous avez le docker-compose

  3. relancer le conteneur (docker start nomDuConteneur)

Troubleshooting

En cas de dysfonctionnement, le serveur écrit des logs dans le dossier /var/log/nginx.log

erreurs fréquentes

En essayant de se connecter depuis une machine utilisateur: "connection refused" => Vérifier le port de connexion => Vérifier qu'on est bien en http://

⚠️ **GitHub.com Fallback** ⚠️