我知道这个问题似乎已被多次提出并回答,但我现在浪费了48个多小时现在尝试其他答案提供的各种方法,我似乎无法将官方django教程部署到我的本地Apache webserver(Apache 2.4关于Ubuntu 18.04,Python 3.6.5)。这就是我所做的。
我创造了一个virtualenv
virtualenv outlier
cd outlier
pip3 install django
django-admin startproject mysite
我创建了我的应用并安装了适合我的python版本的mod_wsgi版本(我尝试了apt install
和setup.py install
方法。)
然后我按如下方式配置 /etc/apache2/sites-enabled/000-default.conf :
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so
<VirtualHost *:80>
LogLevel info
DocumentRoot /srv/outlier
ServerName outlier.tuhao
WSGIDaemonProcess outlier user=www-data group=www-data python-path="/srv/outlier" python-home="/srv/outlier/lib/python3.6/site-packages"
WSGIProcessGroup outlier
WSGIScriptAlias / /srv/outlier/outlier/wsgi.py
<Directory /srv/outlier>
Require all granted
</Directory>
</VirtualHost>
为了确定,我还做了sudo chown -R www-data:www-data /srv/
和sudo chmod -R 777 /srv/
以避免任何权限ding-dongs。
并使用sudo service apache2 restart
重新启动apache。不幸的是,重新启动后,apache日志立即开始不断发送垃圾邮件:
当前线程0x00007faa78e0abc0(最近一次通话):[Mon Jun 04 15:34:55.664080 2018] [核心:通知] [pid 1932] AH00051:儿童pid 5058退出信号中止(6),/ etc / apache2中可能的coredump致命 Python错误:Py_Initialize:无法获取语言环境编码 ModuleNotFoundError:没有名为'encodings'的模块
答案 0 :(得分:0)
我应该先问问题(可能没有发帖),因为我总是在不久之后找到解决方案。
这一行:
WSGIDaemonProcess outlier user=www-data group=www-data python-path="/srv/outlier" python-home="/srv/outlier/lib/python3.6/site-packages"
需要成为这一行:
WSGIDaemonProcess outlier user=www-data group=www-data python-path="/srv/outlier" python-home="/srv/outlier"
我发誓我之前没有尝试过,但在那个阶段可能还有其他不正确的事情。
我会在这里留下问题并回答其他可能来自教程的人,而不知道接下来该做什么。或者,如果需要,管理员可以删除。