tags:

views:

1403

answers:

3

Hello,

Im would like to configure apache2 running on Kubuntu to execute Perl CGI scripts. I've tried some steps I came across by googling, but nothing seems to work. Can someone please point me to the right way of achieving this?

Thank You.

+1  A: 

I'm guessing you've taken a look at mod_perl?

Have you tried the following tutorial?

EDIT: In relation to your posting - perhaps you could include a sample of the code inside your .cgi file. Perhaps even the first few lines?

toolkit
Yeah, ive already installed libapache2-mod-perl2 , but still when i try to access my page using http://localhost/cgi-bin/mypage.cgi , i get an 'Internal Server Error'
So perhaps mypage.cgi is broken?
innaM
+2  A: 

You'll need to take a look at your apache error log to see what the "internal server error" is. The four most likely cases, in my experience would be:

  1. The CGI program is in a directory which does not have CGI execution enabled. Solution: Add the ExecCGI option to that directory via either httpd.conf or a .htaccess file.

  2. Apache is only configured to run CGIs from a dedicated cgi-bin directory. Solution: Move the CGI program there or add an AddHandler cgi-script .cgi statement to httpd.conf.

  3. The CGI program is not set as executable. Solution (assuming a *nix-type operating system): chmod +x my_prog.cgi

  4. The CGI program is exiting without sending headers. Solution: Run the program from the command line and verify that a) it actually runs rather than dying with a compile-time error and b) it generates the correct output, which should include, at the very miniumum, a Content-Type header and a blank line following the last of its headers.

Dave Sherohman
Thanks a lot :)..However instead of httpd.conf, i had to make changes in /etc/apache2/sites-enabled/default, and then everything worked...httpd.conf was a blank file. Any reason why i didnt have to make changes in httpd.conf ?
The more "modern" way of handling configs is to put everything into a flock of partial config files (in sites-enabled, mods-enabled, and conf.d) so that programs can manipulate them more easily. When you're doing this, httpd.conf is no longer needed and can be either used or not.
Dave Sherohman
A: 

Thanks guys its working now :)

Seems you are not going to tell us exactly what magic did the trick?
innaM
There's a comment to my answer indicating that a change to the apache config fixed it, but he didn't say whether it was suggestion #1 (setting ExecCGI) or #2 (AddHandler cgi-script .cgi) that was needed.
Dave Sherohman