Using CentOS5, I have Apache configured with the following directives.
Alias /pscript/ /var/www/pscript/
<Directory "/var/www/pscript/">
Options +ExecCGI
DirectoryIndex thetest.py
AddHandler cgi-script .py
</Directory>
When I call www.domain.com/pscript/ then my python script runs and prints out my sys.path
, which is displaying python2.4
.
When I call a different script that requires Python 2.5, I get a 500 Internal Server Error.
Looking at my Apache error_log, I see the following line:
[Wed Mar 03 16:58:44 2010] [error] [client 000.000.000.000] Please use Python 2.5 or greater
From the command line, running python -V
returns Python 2.5.5
. I have both 2.4 and 2.5.5 installed, but only 2.5.5 should be in use.
In an attempt to remedy the Apache problem I recompiled Python 2.5.5 to be safe, and made sure to enable shared library. Then I recompiled mod_python in case that was affecting something, but my sys.path
is still python2.4
.
I wonder, do I need to recompile Apache 2.2.3 itself? I simply need Apache to utilize Python 2.5.5.
Edit: It appears both of my python installations have shared libraries. Obviously the 2.4 version predates 2.5. Would this be a possible cause?
Thanks in advance.
Best Answer
The apache process is most likely running as a different user and might be picking up a different system path to your own user.
Perhaps, assuming your apache user is www-data, running the following command will confirm it: