【发布时间】:2021-02-26 18:06:09
【问题描述】:
大家好,
与我们公司的管理员一起,我们正在尝试将 Django 与 mod_wsgi 一起部署在 Apache2 上,但我们面临一些小问题。我希望你们中的一些人可以帮忙看看以下几行!?
现在,我们服务器上的目录如下所示:
./var/www/
|-- myproject
|-- manage.py
|-- project/
|-- __init__.py
|-- settings.py
|-- urls.py
|-- wsgi.py
|-- statics
|-- venv
当我试图打开该网站时,它一直在加载,但什么也不会发生!我想知道我们的 .conf 文件中的数据是否有误!
<VirtualHost *:80>
. . .
Alias /static /var/www/myproject/static
<Directory /var/www/myproject/static>
Require all granted
</Directory>
<Directory /var/www/myproject/project>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-path=/var/www/myproject python-home=/var/www/myproject/venv
WSGIProcessGroup myproject
WSGIScriptAlias / /var/www/myproject/project/wsgi.py
</VirtualHost>
如果我理解正确,“WSGIDaemonProcess”中的“python-home”应该指向我的虚拟环境以收集必要的组件和“python-path" 到我的项目中!?
import os
import time
import traceback
import signal
import sys
from django.core.wsgi import get_wsgi_application
sys.path.append('/var/www/myproject/project')
sys.path.append('/var/www/myproject/venv/lib/python3.7/site-packages')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
try:
application = get_wsgi_application()
except Exception:
# Error loading applications
if 'mod_wsgi' in sys.modules:
traceback.print_exc()
os.kill(os.getpid(), signal.SIGINT)
time.sleep(2.5)
第二个“sys.get.append”是否必须指向我的 venv 或我们的管理员安装实际 python-version( 3.7)?
我还注意到,服务器上当前运行的 python 版本是 2.7.6,尽管我的管理员安装了版本 3.7。对于 python 3x,安装的 mod_wsgi 是“libapache2-mod-wsgi-py3”!这也会是个问题吗?
谢谢大家,祝大家有个美好的一天!
【问题讨论】:
-
你能给我们看看
wsgi.py文件吗? -
@cizario 对不起,我忘了,现在添加!非常感谢您的努力!
标签: python django apache2 mod-wsgi httpd.conf