Apache Python 500内部服务器错误

时间:2015-08-27 15:53:53

标签: python apache python-2.7 mod-wsgi permission-denied

提前感谢您对此的任何帮助,我有点新手,并且一直在寻找我想做错的事情。

我有Apache 2.4.6,python 2.7 centos 7。

我有一个简单的python脚本

/var/www/html/test.py

在脚本中

#!/usr/bin/env python
print 'Hello World!'

已经检查了权限(777只是因为我无法弄清楚):

-rwxrwxrwx.  1 apache apache   192 Aug 27 11:45 test.py

运行命令

/var/www/html/test.py

找到并显示Hello World!

apache的日志说

[Thu Aug 27 11:38:53.703606 2015] [cgi:error] [pid 10218] [client 86.159.50.246:61086] AH01215: (13)Permission denied: exec of '/var/www/html/test.py' failed

相关的apache配置如下:

LoadModule wsgi_module modules/mod_wsgi.so
<Directory /var/www/html/>
 Order allow,deny
 Require all granted
 allow from all
 Options +ExecCGI
 AddHandler cgi-script .py
</Directory>

任何帮助都会非常感激,因为我不知道我还有什么其他的错误!

1 个答案:

答案 0 :(得分:1)

我终于弄明白了这个问题。就是我用yum安装了mod_wsgi,并且它是一个不同版本的python的precomilid。它适用于SE linux inabled。为了解决这个问题,我运行了以下代码行

yum install httpd-devel
git clone https://github.com/GrahamDumpleton/mod_wsgi.git
cd mod_wsgi
./configure --with-python=/usr/bin/python2.7    
make
make install

然后输出模块(.so)文件的路径。它看起来很正确,但为了完整起见,我更改了文件: /etc/httpd/conf.modules.d/10-wsgi.conf

LoadModule wsgi_module modules/mod_wsgi.so

LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so

因为那是make步骤的输出路径而且有效!!