使用CentOS5,我有Apacheconfiguration下面的指令。
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。
编辑:这似乎是我的两个Python安装共享库。 显然2.4版本早于2.5。 这会是一个可能的原因吗?
提前致谢。
apache进程很可能是作为一个不同的用户运行的,并且可能正在为自己的用户select一个不同的系统path。
也许,假设你的apache用户是www-data,运行以下命令将确认它:
sudo su www-data python -V
在我的Python脚本/ usr / bin / env被用来调用Python。 这是调用错误的版本。 不知道如何使它调用不同的版本,但改变我的脚本到/ usr / bin / local / python(Python 2.5.5安装)纠正了这个问题。