Django应用程序没有在Apache上与wsgi_mod响应
我想通过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开始监听新端口。
我试过这个在我的服务器上,它工作正常。试试这个,
<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
不幸的不是。我尝试过(取而代之的是我自己的路径)以及它的一些变化。结果总是相同的:Apache正常启动,但不响应请求。 –
是你能找到解决这个问题的? –