2017-09-21 59 views
0

我想通过Apache安装一个Django网站。为此,我使用运行CentOS7的虚拟机并使用Apache 2.4.6。Django应用程序没有在Apache上与wsgi_mod响应

我用Python(3.6.2)创建了一个虚拟环境,安装了Django(1.10.05)和mod-wsgi(4.5.18)。启动新的Django项目,迁移的数据库,在地址0.0.0.0:8003上启动开发人员服务器,并从VM外部启动,我可以毫无问题地连接到<VMs IP>:8003。但是,如果没有开发人员服务器,尝试在Apache上进行中继,则不起作用。我的浏览器只是说,连接到网站是不可能的,事实上,Apache的访问日志不包含任何连接尝试的痕迹。同样的Apache主机也是用Perl编写的另一个应用程序,它可以通过专用端口正常工作。我的settings.py的

位,可能是信息对您

ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]', '<VMs address>'] 
STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, "static/") 

而且我的httpd.conf看起来是这样的:

<VirtualHost *:8003> 
# using port 8003, because 80 is used by another app. Both ports are open on firewall 
    Alias /static /var/www/zdm_ebok/static 
    <Directory /var/www/zdm_ebok/static> 
     Require all granted 
    </Directory> 
    <Directory /var/www/zdm_ebok/zdm_ebok> 
     <Files wsgi.py> 
      Require all granted 
     </Files> 
    </Directory> 
    WSGIDaemonProcess zdm_ebok python-path=/var/www/zdm_ebok:/var/www/zdm_ebok/venv/lib/python3.6/site-packages 
    WSGIProcessGroup zdm_ebok 
    WSGIScriptAlias//var/www/zdm_ebok/zdm_ebok/wsgi.py 
</VirtualHost> 

我已授予访问权限(664)访问权和所有权给Apache使用的用户,所以这可能不是它。

你有什么其他想法可以做我做错了吗?

编辑

我交换端口与其他应用程序,这样的Django现在工作的80端口,我得到503服务不可用错误。然后,我设法在httpd.conf中设置WSGISocketPrefix /var/run/wsgi并在WSGIDaemonProcess中添加user=#1000(1000是我的主用户的ID)。但是,当我将它带回到8003端口(以便我的其他应用程序可以在80上工作)时,它不会再响应。

SOLUTION

说不上来我是否应该删除此或没有,但也许某人那里谁是在同样的Apache作为文盲我,这将是有益的。我忘记做的一件事是在httpd.conf中添加“Listen 8003”,以便Apache开始监听新端口。

+0

是你能找到解决这个问题的? –

回答

0

我试过这个在我的服务器上,它工作正常。试试这个,

<VirtualHost *:80> 

    ServerName localhost.localdomain 
    ServerAlias ipaddress 

    DocumentRoot /var/www/projectname 
    WSGIScriptAlias//var/www/projectname/projectname/wsgi.py 

    Alias /static/ "/var/www/projectname/projectname/static/" 
    <Directory "/var/www/projectname/projectname/static"> 
     Require all granted 
    </Directory> 

    ErrorLog /var/www/logs/error.log 
    CustomLog /var/www/logs/access.log combined 

</VirtualHost> 

和编辑/etc/httpd/conf/httpd.conf中

WSGIPythonPath /var/www/projectname 
+0

不幸的不是。我尝试过(取而代之的是我自己的路径)以及它的一些变化。结果总是相同的:Apache正常启动,但不响应请求。 –