0

我已经按照各种教程推荐的本教程来部署 Django。

https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-14-04

这是我的 000-default.conf 文件的内容..

更新的“.conf”文件

<VirtualHost *:80>

 Alias /static /home/myproject/static
<Directory /home/myproject/static>
    Require all granted
</Directory>

<Directory /home/myproject/myproject>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>

WSGIDaemonProcess myproject python-home=/home/myproject/myprojectenv python-path=/home/myproject/myprojectenv/lib/python2.7/site-packages
WSGIProcessGroup myproject
WSGIScriptAlias / /home/myproject/myproject/wsgi.py

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html



    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

这是我在配备“ubuntu-16.04-64bit”的 VPS 上部署 Django web-app 的第一次体验。

我能够在 virtualenv 被激活并且使用 Django 默认服务器时获取“myproject” Django 应用程序,如下所示:

./manage.py runserver 0.0.0.0:8000

并且能够使用my_ip成功打开myproject应用,由“xx.xxx.xxx.xx”和8000端口表示。

http://xx.xxx.xxx.xx:8000

同时,在按照给定教程的描述停用 virtualenv 并配置 apache2 服务器后,它不起作用。

正如教程所说,在服务器上成功安装和配置您的 Django 应用程序后,它应该只适用于您的 IP,如下所示:

http://xx.xxx.xxx.xx 

在我的情况下,这不起作用,而是在浏览器上显示“等待 xx.xxx.xxx.xx ....”以显示无穷大......并且页面显示这样的错误..

This site can’t be reached

xx.xxx.xxx.63 refused to connect.
Search Google for 188 167 8000
ERR_CONNECTION_REFUSED

而且它也没有为 apache2 生成任何日志

ErrorLog /home/error.log
CustomLog /home/access.log combined

我从早上开始就在挣扎,但没有成功,请帮助...

更新

Apache2 错误日志:

   [Thu Nov 09 03:38:23.800566 2017] [core:warn] [pid 8823:tid 140238720010112] AH00045: child process 8827 still did not exit, sending a SIGTERM
[Thu Nov 09 03:38:25.802552 2017] [core:warn] [pid 8823:tid 140238720010112] AH00045: child process 8827 still did not exit, sending a SIGTERM
[Thu Nov 09 03:38:27.804431 2017] [core:warn] [pid 8823:tid 140238720010112] AH00045: child process 8827 still did not exit, sending a SIGTERM
[Thu Nov 09 03:38:29.805890 2017] [core:error] [pid 8823:tid 140238720010112] AH00046: child process 8827 still did not exit, sending a SIGKILL
[Thu Nov 09 03:38:30.806571 2017] [mpm_event:notice] [pid 8823:tid 140238720010112] AH00491: caught SIGTERM, shutting down
[Thu Nov 09 03:38:31.551724 2017] [mpm_event:notice] [pid 8960:tid 140082895366016] AH00489: Apache/2.4.7 (Ubuntu) mod_wsgi/3.4 Python/2.7.6 configured -- resuming normal operations
[Thu Nov 09 03:38:31.551837 2017] [core:notice] [pid 8960:tid 140082895366016] AH00094: Command line: '/usr/sbin/apache2'
ImportError: No module named site
ImportError: No module named site
ImportError: No module named site
ImportError: No module named site


ImportError: No module named site

这是我的“wsgi.py”内容

"""
WSGI config for myproject project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")

application = get_wsgi_application()
4

1 回答 1

0

有关如何使用虚拟环境正确设置 mod_wsgi,请参阅:

您的问题ImportError: No module named site看起来像您 mod_wsgi 可能无法针对您要使用的相同 Python 版本进行编译。看:

因为它是该问题的变体。

完成所有安装检查:

于 2017-11-08T22:35:12.407 回答