だから私は次の構成を持っています:
- uWsgiを使用したNginxサーバー
- virtualenv での Django プロジェクト
私の virtualenv は通常のシステム ユーザーによって所有されており、構成全体が正常に機能しています。uwsgi プロセスは、nginx uid と gid、および nginx.conf の nginx プロセス所有者で実行するように構成されています。
しかし、同じ要件を満たしているが root が所有する別の virtualenv を使用しようとすると、uwsgi は virtualenv を見つけることができず、インポート エラーがスローされます。
これは正常で、ルート所有の virtualenv を使用する私のアプローチは正しいですか?
編集:
uwsgi 設定:
[uwsgi] virtualenv = /root/Envs/rootenv thread = 4 uid = nginx gid = nginx env = DJANGO_SETTINGS_MODULE=myServer.settings module = django.core.handlers.wsgi:WSGIHandler() chdir = /var/www/myServer socket = /var/run/uwsgi/myserver.sock logto = /var/log/uwsgi/myserver.log
/ルート/.bashrc:
### Virtualenv settings ### export WORKON_HOME=/root/Envs source /usr/local/bin/virtualenvwrapper.sh export PIP_VIRTUALENV_BASE=$WORKON_HOME export PIP_RESPECT_VIRTUALENV=true
uwsgi ログのトレースバック:
*** Starting uWSGI 1.9.15 (64bit) on [Fri Sep 6 14:02:41 2013] *** compiled with version: 4.7.2 on 06 September 2013 10:59:26 os: Linux-3.2.0-4-amd64 #1 SMP Debian 3.2.41-2+deb7u2 nodename: myserver3 machine: x86_64 clock source: unix pcre jit disabled detected number of CPU cores: 2 current working directory: / detected binary path: /usr/local/bin/uwsgi setgid() to 32 set additional group 4 (adm) setuid() to 32 *** WARNING: you are running uWSGI without its master process manager *** your processes number limit is 7929 your memory page size is 4096 bytes detected max file descriptor number: 1024 lock engine: pthread robust mutexes uwsgi socket 0 bound to UNIX address /var/run/uwsgi/myserver.sock fd 3 Python version: 2.7.3 (default, Jan 2 2013, 14:09:21) [GCC 4.7.2] Set PythonHome to /root/Envs/rootenv ImportError: No module named site *** Starting uWSGI 1.9.15 (64bit) on [Fri Sep 6 14:03:13 2013] *** compiled with version: 4.7.2 on 06 September 2013 10:59:26 os: Linux-3.2.0-4-amd64 #1 SMP Debian 3.2.41-2+deb7u2 nodename: myserver3 machine: x86_64 clock source: unix pcre jit disabled detected number of CPU cores: 2 current working directory: / detected binary path: /usr/local/bin/uwsgi setgid() to 32 set additional group 4 (adm) setuid() to 32 *** WARNING: you are running uWSGI without its master process manager *** your processes number limit is 7929 your memory page size is 4096 bytes detected max file descriptor number: 1024 lock engine: pthread robust mutexes uwsgi socket 0 bound to UNIX address /var/run/uwsgi/myserver.sock fd 3 Python version: 2.7.3 (default, Jan 2 2013, 14:09:21) [GCC 4.7.2] Set PythonHome to /root/Envs/rootenv ImportError: No module named site