diff --git a/uWSGI.md b/uWSGI.md index 0e96d0f..b58ec64 100644 --- a/uWSGI.md +++ b/uWSGI.md @@ -3,7 +3,23 @@ ## Configuration Les fichiers de configuration sont `/etc/uwsgi/pc.ini` pour la prod et `/etc/uwsgi/pc-dev.ini` pour la dev. -Les sockets doivent pointer vers `/run/uwsgi./socket`, avec l'utilisateur et le groupe correspondant à ``. +Les sockets doivent pointer vers `/run/uwsgi./socket`, avec l'utilisateur et le groupe correspondant à ``, +et les droits en 770 (le groupe est important pour que l'utilisateur `http` (Nginx) puisse y accéder). + + +Exemple pour la prod : + +```ini +[uwsgi] +uid = pc +gid = pc +socket = /run/uwsgi.pc/socket +chmod-socket = 770 +manage-script-name = true +mount = /=app:app +master = true +plugins = python +``` ## SystemD @@ -13,20 +29,22 @@ Le service de base fourni par le paquet uwsgi ne correspond pas à nos besoins. systemctl edit --full uwsgi@.service ``` -Remplacer `ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/%I.ini` par `ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/%i.ini` (la casse du `%I`, qui pose problème par défaut). +```ini +[Unit] +Description=uWSGI service unit +After=syslog.target -```bash -systemctl edit uwsgi@.service -``` - -Insérer le contenu suivant : - -``` [Service] -User=%i -Group=%i -RuntimeDirectory=uwsgi.%i -RuntimeDirectoryMode=755 -``` +ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/%i.ini +ExecReload=/bin/kill -HUP $MAINPID +ExecStop=/bin/kill -INT $MAINPID +Restart=always +Type=notify +StandardError=syslog +NotifyAccess=all +KillSignal=SIGQUIT +WorkingDirectory=/home/%i/www/ -Cela permet de créer le répertoire contenant le socket avec les bons droits, et de lancer uwsgi en tant qu'utilisateur. +[Install] +WantedBy=multi-user.target +```