请帮忙。我有一个 Django 网站,我正在尝试配置它以使用 mod_wsgi 在 apache 中运行。我已按如下方式设置虚拟主机:
<virtualhost *:80>
ServerName mysite.com
ServerAlias mysite.com
Alias /static/my_site/ /opt/mysitepath/mysite/static/my_site/
WSGIDaemonProcess my_site python-home=/usr/local/virtualenvironment python-path=/opt/mysitepath processes=2 threads=1
WSGIProcessGroup my_site
WSGIScriptAlias / /opt/mysitepath/mysite/wsgi.py process-group=my_site
<Directory /opt/mysitepath/mysite/static/my_site>
Require all granted
</Directory>
<Directory /opt/mysitepath/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
LogLevel info
ErrorLog logs/mysite.com_log
</virtualhost>
当我启动 Apache 时看到的明显问题如下:
AH00558:httpd:无法使用 ::1 可靠地确定服务器的完全限定域名。全局设置“ServerName”指令以隐藏此消息 [2018 年 4 月 20 日星期五 04:42:27.900968] [auth_digest:notice] [pid 1206] AH01757:生成摘要式身份验证的机密... [2018 年 4 月 20 日星期五 04:42:27.901742] [lbmethod_heartbeat:notice] [pid 1206] AH02282:没有来自 mod_heartmonitor 的 slotmem [2018 年 4 月 20 日星期五 04:42:27.997621] [:warn] [pid 1206] mod_wsgi:针对 Python/3.4.0 编译。 [2018 年 4 月 20 日星期五 04:42:27.997647] [:warn] [pid 1206] mod_wsgi:运行时使用 Python/3.4.5。[2018 年 4 月 20 日星期五 04:42:27.997681] [:alert] [pid 1206] (2)没有此类文件或目录:mod_wsgi (pid=1206):无法绑定 unix 域套接字“/var/run/apache2/wsgi.1206.0.1.sock”。 [2018 年 4 月 20 日星期五 04:42:28.005204] [mpm_prefork:notice] [pid 1206] AH00163:Apache/2.4.6 (CentOS) PHP/5.6.31 SVN/1.7.14 mod_wsgi/3.4 Python/3.4.5 已配置 - 恢复正常操作
当我通过浏览器访问该网站时,我得到了
503服务不可用
知道为什么 apache 无法绑定到 mod_wsgi 应该监听的套接字吗?我怎样才能让我的网站正确加载?
提前致谢!
答案1
似乎我必须在我的虚拟主机中添加一个条目
WSGISocketPrefix /var/run/wsgi
我的虚拟主机现在如下所示:
WSGISocketPrefix /var/run/wsgi
<virtualhost *:80>
ServerName mysite.com
ServerAlias mysite.com
Alias /static/my_site/ /opt/mysitepath/mysite/static/my_site/
WSGIDaemonProcess my_site python-home=/usr/local/virtualenvironment python-path=/opt/mysitepath processes=2 threads=1
WSGIProcessGroup my_site
WSGIScriptAlias / /opt/mysitepath/mysite/wsgi.py process-group=my_site
<Directory /opt/mysitepath/mysite/static/my_site>
Require all granted
</Directory>
<Directory /opt/mysitepath/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
LogLevel info
ErrorLog logs/mysite.com_log
</virtualhost>