Anna Presnyakova
Anna Presnyakova

Reputation: 93

Python web script doesn't run on apache

I am trying getting starting with python web programming but I have a problem. I want to work with CGI I installed Ampps web-server on pc (Linux). According to this instruction Apache Tutorial: Dynamic Content with CGI. I put my file index.pl in the folder '/usr/local/ampps/www/cgi-bin' and tried to accesses it

http://localhost/cgi-bin/index.py 

Here is code of my file:

#!/usr/local/ampps/python/bin/python
print "Content-type: text/html\n\n" 
print "Hello World from PythonStandard Hello World from a Python"

But it gives me mistake Sorry, the page you are looking for is currently unavailable.

Here is error log of Apache:

[Tue Jul 22 20:05:45.019799 2014] [cgi:error] [pid 11952] [client 127.0.0.1:38359] AH01215: (13)Permission denied: exec of '/usr/local/ampps/www/cgi-bin/index.py' failed [Tue Jul 22 20:05:45.020262 2014] [cgi:error] [pid 11952] [client 127.0.0.1:38359] End of script output before headers: index.py

I corrected conf of Apache

AddHandler cgi-script .cgi .pl .py

it looked ok too

LoadModule cgi_module modules/mod_cgi.so
ScriptAlias /cgi-bin/ "{$path}/www/cgi-bin/"

What can be wrong else?

Upvotes: 0

Views: 2143

Answers (2)

Tom McGee
Tom McGee

Reputation: 76

I was getting similar errors. It seemed that the AMPPS installation of Python was missing one of the DLLs. I downloaded the 2.7 .msi package from ActiveState and installed it.

A couple of things before you start: the location, and the permissions.

I may be wrong on this, but Apache will be looking for the Python executable in the directory that was created for it in the AMPPS installation -- c:\whatever\whatever\ampps\python. I tried installing it in c:\whatever\whatever\ampps\python2.7, but it didn't work. I suppose I could have edited the httpd.conf file, but since the original installation wasn't working anyway, I overwrote the c:\w\w\ampps\python files.

I also ran the .msi as an administrator. This was tricky, because my company-issued machine doesn't let me simply right-click on an .msi and select "run as administrator." I finally went into the task manager (option 8 here: http://www.eightforums.com/tutorials/9564-run-administrator-windows-8-a.html), and put the full path to the downloaded file in the entry. And voila, "hello world."

Upvotes: 0

bruno desthuilliers
bruno desthuilliers

Reputation: 77902

Your script needs to have the executable bit set (using chmod) and the Apache user or group (usually named 'Apache' or 'www-data' depending on your distro - you can check /etc/passwd to find out) must have the 'execute' permission on it.

Upvotes: 1

Related Questions