** This FAQ is contributed by Agent002
Besides a Perl interpreter, you also need a web server software installed. If you're running Windows, I can tell you how to install Apache and ActivePerl, to run Perl on your own computer.
First, download the Apache 2 binary distribution from
apache.org. When the installer prompts you, set "Network Domain" and "Server Name" to localhost, and "Administrator's Email Address" to your own email addy. Choose the "Typical" setup mode, the default installation folder (C:\Program Files\Apache Group\) is good. When installation is finished, Apache should start automatically as a Windows service. You can check if it's working by going to
http://localhost/ (or if you prefer,
http://127.0.0.1/) in your web browser. You can now save your files in the /htdocs directory inside the directory you installed Apache in, and access them through
http://localhost/filename.
Then, download the ActivePerl package from
www.activestate.com. Notice that registering is voluntary. Choose the newest build and Windows / MSI (a Windows installer package). When installing, leave the Custom Setup settings as they are, as well as the installation directory (C:\Perl\). In the next screen, leave "Enable PPM3 to send profile info to ASPN" unchecked. In the next screen, check both "Add Perl to the PATH environment variable" and "Create Perl file extension association". Then the installer will copy all files and generate the HTML documentation - generating the documentation will take a good while so just be patient.
Now you have the Perl interpreter installed, and you can run Perl scripts in it, but to run them through your web browser (as CGI scripts), you still need to configure Apache a little. Go to the Windows start menu -> Programs -> Apache HTTP Server 2.0.xxx -> Configure Apache Server -> Edit the Apache httpd.conf Configuration File, and some code should open up in Notepad. Hit Ctrl+F or choose Edit -> Find (in Notepad), type cgi-script and hit "Find Next". You should come to a line that says #AddHandler cgi-script .cgi. Uncomment it, i.e. remove the pound sign (#) from the beginning of it. Also set it to interpret .pl files as CGI scripts, so you have AddHandler cgi-script .cgi .pl. Then save the file and restart Apache from Start menu -> Programs -> Apache HTTP Server 2.0.xxx -> Control Apache Server -> Restart. You can now save your Perl scripts in the /cgi-bin directory, that is located in the same dir as /htdocs. You run them in your browser through
http://localhost/cgi-bin/filename.cgi.
You will also have to use a different shebang line when running Perl scripts on your localhost server. Instead of the typicl web host server shebang line that is similar to this:
#!/usr/bin/perl
you will use:
#!/perl/bin/perl.exe
or
#!C:/perl/bin/perl.exe
or
#!perl
whichever one works for your setup.
If you wish to be able to run Perl scripts from the /htdocs directory too, edit the httpd.conf file again (Start menu -> Programs -> Apache HTTP Server 2.0.xxx -> Configure Apache Server -> Edit the Apache httpd.conf Configuration File), hit Ctrl+F, and search for
<Directory, you probably need to search several times before coming to a line that says
<Directory "C:/Program Files/Apache Group/Apache2/htdocs"> (the path you see depends on where you installed Apache, that is the default installation directory). Everything below that until a closing
</Directory> (reminds you of HTML doesn't it) are instructions for the /htdocs directory. Inside that block, find a line saying
Options Indexes FollowSymLinks, amend it to
Options Indexes FollowSymLinks ExecCGI, save the file and restart Apache (Start menu -> Programs -> Apache HTTP Server 2.0.xxx -> Control Apache Server -> Restart). You can now run your CGI scripts in /htdocs too.
At the moment, only .cgi files are ran as CGI scripts, but you may want to run other extensions, such as .pl, .py, .tcl or .rb as CGIs too. Edit the httpd.conf configuration file again, find the line that says
AddHandler cgi-script .cgi, change it to
AddHandler cgi-script .cgi .pl (you can add as many extensions as you want), then save the file and restart Apache.
There is still one thing you may want to edit; setting Apache to see index.cgi (and index.pl) as directory index files, just like index.html and index.htm are seen. Edit httpd.conf again, and find
DirectoryIndex from the file. You should come to a line saying
DirectoryIndex index.html index.html.var, amend it to
DirectoryIndex index.html index.html.var index.cgi index.pl. You can also add index.htm to it, if you prefer the .htm extension to .html. Then save the file and restart Apache.
Good luck