Installation
sudo yum update -y
sudo yum install httpd -y
sudo yum install perl perl-CGI -y
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Création d’un fichier de test CGI
Pour cela on va créer un répertoire de test:
mkdir /var/www/test_cgi
vi /var/www/test_cgi/hello.cgi
Et on y ajoute cela:
#!/usr/bin/perl
print "Content-type: text/html\n\n"; # Obligatoire
print "<h2>Hello world!</h2>";
Chargement du module mod_cgi.so dans Apache
On peux vérifier les modules présent dans la configuration principale d’Apache:
grep -n "LoadModule" /etc/httpd/conf/httpd.conf
Si il n’est pas présent, on va l’ajouter, pour cela on va localiser le module:
find /etc/httpd/modules/ -iname "*cgi*"
Cela devrait nous retourner:
/etc/httpd/modules/mod_cgi.so
Une fois trouvé, on ajoute cette ligne au fichier de configuration d’apache:
LoadModule cgi_module modules/mod_cgi.so
Particularité sur Ubuntu pour activer le module cgi:
sudo a2enmod cgi
sudo service apache2 restart
Déclaration du répertoire du script test dans httpd.conf
vi /etc/httpd/conf/httpd.conf
Puis on y ajoute ça:
<Directory "var/www/test_cgi">
Options +ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
On modifie également cette ligne comme ceci:
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
qui devient:
#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
ScriptAlias /test_cgi/ "/var/www/test_cgi/"
Attribution des droits
chmod 755 hello.cgi
On redémarre Apache:
sudo systemctl restart httpd.service
On peux maintenant tester le script à cette adresse: