Skip to main content

configuring apache for python

If you have basic understanding of apache, then this article is highly recommended for setup:
http://httpd.apache.org/docs/1.3/howto/cgi.html


I did setup this in my mac/OSx, was not easy to find info on web, hence I am briefing out the flow:
1) uncomment "LoadModule cgi_module libexec/apache2/mod_cgi.so" ( for me it exists in httpd.conf )
2) edit virtual hosts file to look like this: ( for mac, it is in httpd-vhosts.conf )

Options Indexes MultiViews FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all


NOTE: "/www" is where my project resides
"ExecCGI" is the option that has to be there
3) Below the directory closing, add this line: ( for mac, it is in httpd-vhosts.conf )
AddHandler cgi-script cgi py

4) Restart apache: "sudo apachectl restart"

Now running your project should give "End of script output before headers" error in error log and 500 internal server error on web.

-> Fix for this (add the below lines on top of your index file, which is referred in first and foremost call) :
#!/usr/local/bin/python
print "Content-Type: text/html"
print
print "Hey! There? "


NOTE: Make sure you don't miss out "#!/usr/local/bin/python" as it tells apache using which environment this file is to be executed.

Other pointers are: You have to do similar stuff on the parallel lines for setting up perl or any other CGI scripts.

Also, This sets up the basic CGI mode for python; while there are some other mods are also available like "mod_python" or "fastCGI".

Comments

Popular posts from this blog

VBA MAcro to generate "table of contents with hyperlinks" automatically in a ppt

VBA MAcro to generate "table of contents with hyperlinks" automatically in a ppt: Function TableOfContent(count As Integer) 'count is the no. of slides in ppt Dim var As Integer Dim i As Integer, scount As Integer Dim strSel As String, strTitle As String, strb As String, strtemp As String, str As String Dim arr() As String Dim index As Integer, indexcount As Integer, slidecount As Integer Dim summary As Slide Dim para As Integer Dim slideOrder() As Integer 'To generate the Table of contents slide ReDim slideOrder(count - 2) 'Collect all the IDs of the selected slides For i = 1 To count - 2 slideOrder(i) = i + 2 Next 'Iterate over the slides in Index order slidecount = UBound(slideOrder) For scount = 1 To slidecount If ActivePresentation.Slides(slideOrder(scount)).Shapes.HasTitle Then 'Build up the ToC Text strTitle = ActivePresentation.Slides(slideOrder(scount)).Shapes("UseCase").TextFrame.TextRange.Text + ": ...

Filter packets through jpcap

//Open an interface with openDevice(NetworkInterface intrface, int snaplen, boolean promics, int to_ms) JpcapCaptor captor=JpcapCaptor.openDevice(devices[index], 65535, false, 20); captor.setFilter("tcp && src port 6000", true); It'll filter all the TCP packets with source port number 6000. So, all we need to do is pass the parameters and use logical and, or operators.

Upload a multi-part/image/file using curl

This post is about uploading a file to server using curl. Why I'm writing this post is because of a possible bug in Postman which forced me to look for an alternative to test my upload api. Test if curl is present in system : $ which curl /usr/bin/curl If curl is not present then install it : yum (centos), apt-get (ubuntu), brew (mac) Syntax of the command : curl -F "param1=value" -F "param2=value2" -F "filecomment=file_comment" -F "image=@image_path" server_api Here's an example of the same : curl -F "user_id=12" -F "description": "desc" -F "filecomment=This is an image file" -F "image=@/Users/Desktop/testim.png" localhost:80/myblog/create If using nodeJs, you can fetch the values in fields & files parameters.