J'ai eu beaucoup de mal à déployer Django avec la combinaison de titres, donc j'ai fait une note pour la prochaine fois. Je vais quitter l'endroit auquel j'étais accro.
La combinaison est la suivante
Django
Faites-le dans une certaine mesure et exécutez la commande suivante pour confirmer que l'application fonctionne à partir du navigateur. Si cela n'est pas possible, il est inutile de faire ce qui suit.
$ python manage.py runserver 0.0.0.0:8000
uWSGI a été installé avec apt, mais cela n'a pas fonctionné. J'étais accro à cela seul pendant 2 jours.
Lorsque uwsgi est exécuté avec sudo attaché, l'erreur suivante apparaît et cela ne fonctionne pas bien.
$ sudo uwsgi ***
Lorsque je le vérifie avec un navigateur, le journal ne montre aucune application Python trouvée.
--- no python application found, check your startup logs for errors ---
[pid: 10523|app: -1|req: -1/1] 121.101.66.160 () {40 vars in 785 bytes} [Sun Feb 19 14:12:06 2017] GET / => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)
Si vous google, vous trouverez ces informations ... http://www.yodiaditya.com/no-python-application-found-check-your-startup-logs-for-errors/
sudo apt-get remove uwsgi*
sudo apt-get purge uwsgi*
Installez uWSGI via pip. (J'ai oublié d'ajouter sudo)
pip install uwsgi
Confirmez avant de créer un fichier ini (http) Accédez à http: // ****: 8889 / admin avec un navigateur.
$ uwsgi --http :8888 --file /home/<user>/<pass>/<to>/<projectname>/<projectname>/wsgi.py
J'ai vu le site.
Il a été défini comme suit. Pour le moment, au port 8878.
# sudo vi /etc/nginx/conf.d/uwsgi.conf
upstream django {
server unix:///tmp/<projectname>.sock;
}
server {
listen 8887;
access_log /var/log/nginx/<projectname>_access.log;
error_log /var/log/nginx/<projectname>_error.log;
location /static {
alias /home/<user>/<pass>/<to>/<projectname>/static/;
}
location / {
include uwsgi_params;
uwsgi_pass django;
}
}
Vérifiez le fonctionnement du navigateur après le démarrage de uWSGI
$ uwsgi --socket /tmp/<projectname>.sock --chmod-socket=666 --file /home/<user>/<pass>/<to>/<projectname>/<projectname>/wsgi.py
Vérifiez avec un navigateur (http: // ****: 8877 / admin)
error removing unix socket, unlink(): Operation not permitted [core/socket.c line 198]
Y a-t-il un fichier socket lorsque uWSGI est inséré via apt? J'ai une erreur d'autorisation. Supprimez le fichier socket avec rm.
sudo rm /tmp/<projectname>.sock
J'ai redémarré uwsgi et l'ai vérifié à nouveau avec un navigateur pour le voir.
Ceci est entré depuis apt.
sudo apt-get install supervisor
Fichier de paramétrage (je ne sais pas s'il correspond, mais ça marche pour le moment ...)
# sudo vi /etc/supervisor/conf.d/uwsgi.conf
[program:uwsgi]
directory = /home/<user>/<pass>/<to>/<projectname>
command = /home/<user>/.pyenv/shims/uwsgi --ini /etc/uwsgi/apps-enabled/<projectname>.ini
stopasgroup = true
numprocs = 1
autostart = true
autorestart = true
user=root
redirect_stderr = true
stdout_logfile = /var/log/supervisor/uwsgi.log
Vérification de l'état
sudo supervisorctl status
http://*****:8889/adminとかで開けばOK! Redémarrez le serveur et vérifiez si vous pouvez y accéder à nouveau et c'est OK!
--Je veux pouvoir faire fonctionner plusieurs applications Django dans un sous-répertoire (http: // domaine / sous-répertoire /: 80).
Recommended Posts