web-dev-qa-db-fra.com

Câblage uWSGI pour fonctionner avec Django et nginx sur Ubuntu 16.04

J'essaie de suivre ce tutoriel pour configurer uWSGI avec Django et nginx le Ubuntu16.04 .

Tout fonctionne bien jusqu'à la toute dernière étape (oh l'ironie ...) où j'essaie d'exécuter cette commande:

Sudo service uwsgi start

Si échoue avec l'erreur suivante:

Impossible de démarrer uwsgi.service: unité uwsgi.service introuvable.

D'autres semblent obtenir une erreur similaire:

Impossible de démarrer uwsgi.service: Échec du chargement de l'unité uwsgi.service: aucun fichier ou répertoire de ce type.

Le problème semble être lié à la version d'Ubuntu. Bien que ce didacticiel soit destiné à Ubuntu 14.04, il semble qu'il ne fonctionnera pas pour les versions plus récentes car dans la version 15, Ubuntu est passé du démon upstart init au démon systemd init =.

Comment puis-je utiliser systemd pour lancer uWSGI afin qu'il fonctionne avec nginx et Django?

14

La première modification nécessaire est la /etc/uwsgi/sites/firstsite.ini fichier. La seule modification nécessaire consiste à remplacer les autorisations de 664 à 666. Le script ressemblerait à ceci:

[uwsgi]
project = firstsite
base = /home/user

chdir = %(base)/%(project)
home = %(base)/Env/%(project)
module = %(project).wsgi:application

master = true
processes = 5

socket = %(base)/%(project)/%(project).sock
chmod-socket = 666
vacuum = true

Deuxièmement , comme nous utilisons systemd plutôt que upstart, le fichier suivant est non nécessaire et peut être supprimé: /etc/init/uwsgi.conf

Troisièmement , nous créons le script systemd suivant à /etc/systemd/system/uwsgi.service:

[Unit]
Description=uWSGI Emperor service
After=syslog.target

[Service]
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all

[Install]
WantedBy=multi-user.target

Actualisez l'état du système systemd init avec ce nouveau service uWSGI à bord

Sudo systemctl daemon-reload

Pour démarrer le script, vous devrez exécuter ce qui suit:

Sudo systemctl start uwsgi

Pour démarrer uWSGI au redémarrage, vous aurez également besoin de:

Sudo systemctl enable uwsgi

Vous pouvez utiliser les éléments suivants pour vérifier son état:

systemctl status uwsgi

D'autres détails peuvent être trouvés ici .

27

Pour contourner cette erreur: Sudo systemctl daemon-reload pour le fichier wsgi.service nouvellement créé à charger.

Pour démarrer le service à chaque redémarrage: Sudo systemctl enable uwsgi.

0