Apache 2 in Ubuntu is configured to work with .pl/.cgi scripts by default. But it won’t work as cgi module is not loaded. To activate CGI scripts, you need to run
sudo a2enmod cgi sudo service apache2 restart
Apache configuration used for localhost in my PC is
userName@fwhlin:~$ cat /etc/apache2/sites-available/000-default.conf <VirtualHost 127.0.0.1:80> ServerAdmin webmaster@localhost SetEnv APP_ENV "dev" DocumentRoot /home/userName/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /home/userName/www/> Options All AllowOverride All Require all granted Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /home/userName/www/cgi-bin/ <Directory "/home/userName/www/cgi-bin/"> AllowOverride None Require all granted Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> AddHandler cgi-script .cgi .pl ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet userName@fwhlin:~$