无法在Apache上部署官方Django教程(mod_wsgi)

时间:2018-06-04 13:38:12

标签: python django apache mod-wsgi

我知道这个问题似乎已被多次提出并回答,但我现在浪费了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 installsetup.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'的模块

1 个答案:

答案 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"

我发誓我之前没有尝试过,但在那个阶段可能还有其他不正确的事情。

我会在这里留下问题并回答其他可能来自教程的人,而不知道接下来该做什么。或者,如果需要,管理员可以删除。