目前我一直在尝试使用 Apache2 在 Ubuntu 上运行一个网站,但遇到了一个问题。该网站名为 Indivo,包含 Python 文件。
我已经按照指示,但在运行 Apache 时:
$ sudo service apache2 restart
我收到此行但网站无法启动:
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting [Wed Aug 04 13:12:01 2010] [warn] module wsgi_module is already loaded, skipping
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Apache 配置文件(在 /etc/apache2/sites-enabled/default 中)如下:
<VirtualHost *:8000>
ServerAdmin [email protected]
ServerName www.indivo.dal.ca
DocumentRoot /usr/indivo_server
Alias /static/ /usr/indivo_server/static/
EnableMMAP On
EnableSendfile On
LogLevel warn
<Directory /usr/indivo_server>
Order deny,allow
Allow from all
</Directory>
WSGIDaemonProcess indivo user=ehsan group=ehsan processes=1 maximum-requests=500 threads=10
WSGIScriptAlias / /usr/indivo_server/django.wsgi
WSGIPassAuthorization On
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.indivo.dal.ca
DocumentRoot /usr/indivo_ui_server
Alias /static/ /usr/indivo_ui_server/ui/static/
EnableMMAP On
EnableSendfile On
LogLevel warn
<Directory /usr/indivo_ui_server>
Order deny,allow
Allow from all
</Directory>
WSGIDaemonProcess indivo_ui user=ehsan group=ehsan processes=1 maximum-requests=500 threads=10
WSGIScriptAlias / /usr/indivo_ui_server/django.wsgi
WSGIPassAuthorization On
</VirtualHost>
您对这个问题有什么想法吗?
谢谢你,
Ehsan
答案1
错误:
module wsgi_module is already loaded
是因为您多次使用了 wsgi_module 的 LoadModule 行,或者它所在的代码片段文件以某种方式被包含了两次。
您的配置在其他方面也存在错误。
首先,您缺少与 WSGIDaemonProcess 指令配合使用的 WSGIProcessGroup 指令。如果您没有 WSGIProcessGroup,WSGI 应用程序仍将以嵌入模式运行,并且不会被委托给守护进程。请务必阅读官方文档,以了解为什么会出现套接字权限问题:
http://code.google.com/p/modwsgi/wiki/ConfigurationIssues
其次,不要使用“processes = 1”,只需关闭该选项,因为它默认为一个进程,并且使用“processes”选项的任何值在技术上都会向 WSGI 应用程序标记它是一个多进程应用程序,而在您的情况下可能不是,因为您没有使用同一个应用程序在多个 Apache 服务器实例之间进行负载平衡。
最后,除非您有充分的理由并了解为什么要这样做,否则通常不建议设置最大请求数。如果您添加它是因为您看到其他人的配置有它,而不是因为您知道您确实需要它,那么请将其删除。
顺便说一句,假设您已经正确设置了 NameVirtualHost,因此您的 VirtualHost 实际上可以正常工作。
至于域名解析,如果您的网站正常运行,通常可以忽略。
请注意,您引用的错误之一应该会导致 Apache 停止启动。建议您运行:
sudo /usr/sbin/apachectl -t
并查看 Apache 验证您的配置时给出了哪些进一步的错误消息,并将完整输出作为您的问题的补充。
mod_wsgi 的完整官方文档可以在以下位置找到:
确保你已阅读它。
答案2
当你跑步时你会得到什么
hostname --fqdn
检查 /etc/hosts 中是否有合适的名称,例如 www.indivo.dal.ca
你的 apache conf 文件对我来说看起来正确,django.wsgi 是什么样的?