Python 如何解决;“内部服务器错误”;将mod_wsgi与web.py一起使用

Python 如何解决;“内部服务器错误”;将mod_wsgi与web.py一起使用,python,apache,mod-wsgi,web.py,Python,Apache,Mod Wsgi,Web.py,我试图将mod_wsgi配置为使用一个简单的web.py python脚本。我遵循这本食谱: 每次我去https:///appname/chrome显示内部服务器错误 以下是我的配置详细信息: 在httpd.conf中,我有 LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias /appname /var/www/webpy-app/cody.py/ Alias /appname /var/www/webpy-app/static

我试图将mod_wsgi配置为使用一个简单的web.py python脚本。我遵循这本食谱:

每次我去
https:///appname/
chrome显示
内部服务器错误

以下是我的配置详细信息:

在httpd.conf中,我有

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias /appname /var/www/webpy-app/cody.py/
Alias /appname /var/www/webpy-app/static/
AddType text/html .py

<Directory /var/www/webpy-app/>
  Order deny,allow
  Allow from all
</Directory>

<Location /appname>
AuthType Basic
AuthName "Authenication Required"
AuthUserFile "/etc/httpd/conf/some_sample_users"
</Location>
我查看了错误日志,但没有发现太多错误:

[Wed Oct 09 02:24:50 2013] [notice] caught SIGTERM, shutting down
[Wed Oct 09 02:24:55 2013] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Wed Oct 09 02:24:55 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Oct 09 02:24:55 2013] [warn] module wsgi_module is already loaded, skipping
[Wed Oct 09 02:24:55 2013] [notice] Digest: generating secret for digest authentication ...
[Wed Oct 09 02:24:55 2013] [notice] Digest: done
[Wed Oct 09 02:24:55 2013] [notice] Apache/2.2.15 (Unix) mod_wsgi/3.2 Python/2.6.6 DAV/2 mod_ssl/2.2.15 OpenSSL/1.0.0-fips configured -- resuming normal operations

我需要进行哪些修改才能使其正常工作?

一开始就错了:

WSGIScriptAlias /appname /var/www/webpy-app/cody.py/
Alias /appname /var/www/webpy-app/static/
Alias指令优先于WSGIScriptAlias。您将它们用于相同的装载点,因此Alias将获胜。我建议先把Alias注释掉

同样,在子URL上挂载时,在第二个参数而不是第一个参数上有一个尾随斜杠可能会导致问题。使用:

WSGIScriptAlias /appname /var/www/webpy-app/cody.py
下一个问题是:

[Wed Oct 09 02:24:55 2013] [warn] module wsgi_module is already loaded, skipping
这表明您有:

LoadModule wsgi_module modules/mod_wsgi.so
在Apache配置中的不同位置列出了两次,或者您已经成功地包含了两次已列出的配置文件

首先修复这些问题,然后用更新的信息编辑您的问题。

我遵循这一步骤,在不使用.htaccess的情况下运行web.py, 但是请记住,当您复制粘贴python代码时,您必须注意缩进,因为它也会显示内部服务器错误。这就是httpd.conf的样子

<VirtualHost _default_ *:80> 
ServerAdmin admin@project.com 
DocumentRoot /var/www/project.com/public_html/ 
ErrorLog /var/www/project.com/logs/error.log 
CustomLog /var/www/project.com/logs/access.log combined  
WSGIScriptAlias / /var/www/project.com/production/main.py 
Alias /static /var/www/project.com/public_html 
AddType text/html .py 
WSGIDaemonProcess www-data threads=15 
WSGIProcessGroup www-data  
    <Directory /var/www/project.com/production/> 
        Order deny,allow 
        Allow from all 
        Options +FollowSymLinks 
        Options -Indexes 
    </Directory>      
</VirtualHost>

服务器管理员admin@project.com 
DocumentRoot/var/www/project.com/public\u html/
ErrorLog/var/www/project.com/logs/error.log
CustomLog/var/www/project.com/logs/access.log
WSGIScriptAlias//var/www/project.com/production/main.py
别名/static/var/www/project.com/public\u html
AddType text/html.py
WSGIDaemonProcess www数据线程=15
WSGIProcessGroup www数据
命令拒绝,允许
通融
选项+FollowSymLinks
选项-索引

使用main.py作为索引文件

修复这些问题会带来更多相关的答案。我使用yum安装了mod_wsgi,但是它使用了默认的python2.6。现在我需要从源代码中删除它并安装mod_wsgi,以便它可以使用python2.7
<VirtualHost _default_ *:80> 
ServerAdmin admin@project.com 
DocumentRoot /var/www/project.com/public_html/ 
ErrorLog /var/www/project.com/logs/error.log 
CustomLog /var/www/project.com/logs/access.log combined  
WSGIScriptAlias / /var/www/project.com/production/main.py 
Alias /static /var/www/project.com/public_html 
AddType text/html .py 
WSGIDaemonProcess www-data threads=15 
WSGIProcessGroup www-data  
    <Directory /var/www/project.com/production/> 
        Order deny,allow 
        Allow from all 
        Options +FollowSymLinks 
        Options -Indexes 
    </Directory>      
</VirtualHost>