使用CentOS5,我使用以下指令配置Apache。
Alias /pscript/ /var/www/pscript/
<Directory "/var/www/pscript/">
Options +ExecCGI
DirectoryIndex thetest.py
AddHandler cgi-script .py
</Directory>
当我致电www.domain.com/pscript/时,我的python脚本会运行并打印出sys.path
,显示python2.4
。
当我调用另一个需要Python 2.5的脚本时,我收到500内部服务器错误。
查看我的Apache error_log,我看到以下行:
[Wed Mar 03 16:58:44 2010] [error] [client 000.000.000.000] Please use Python 2.5 or greater
从命令行运行python -V
会返回Python 2.5.5
。我安装了2.4和2.5.5,但只应使用2.5.5。
为了解决Apache问题,我重新编译Python 2.5.5是安全的,并确保启用共享库。然后我重新编译mod_python,以防影响某些事情,但我的sys.path
仍然是python2.4
。
我想知道,我是否需要重新编译Apache 2.2.3本身?我只需要Apache来使用Python 2.5.5。
提前致谢。
答案 0 :(得分:3)
Python脚本的第一行是否类似:
#!/usr/bin/python
如果是这样,也许/usr/bin/python
是Python 2.4版,而直接从命令行运行python
则是从路径中的其他位置运行不同的Python可执行文件(版本2.5)。尝试:
which python
从命令行运行python
时查看正在运行的可执行文件。