Supposons que j'ai fini d'installer une version moderne d'Ubuntu et que j'ai le script suivant.
#!/bin/sh
echo "Content-type: text/html\n"
echo "<html><body>Hello world</body></html>"
Comment installer et configurer Apache pour qu'il serve une page Web "Hello world" à partir de http: // localhost à l'aide de ce script?
Dans l'application en ligne de commande (Terminal):
Sudo apt-get install Apache2
Dans cet exemple, supposons que le script CGI s'appelle test.sh
et qu'il soit enregistré dans votre dossier personnel. Pour qu'Apache utilise test.sh
, le script doit tout d'abord posséder des autorisations exécutables:
chmod 755 $HOME/test.sh
Il doit également être déplacé vers le dossier CGI désigné par Apache. Pour Ubuntu (et les autres systèmes d'exploitation basés sur Debian), il s'agit de /usr/lib/cgi-bin/
, tandis que le contenu HTML et autre est stocké dans /var/www
.
Sudo mv $HOME/test.sh /usr/lib/cgi-bin/
Apache servira le code HTML généré par test.sh
à l'adresse http: //localhost/cgi-bin/test.sh . Si Apache se trouve quelque part à côté de votre propre ordinateur, remplacez "localhost" par l'URL ou l'adresse IP du serveur.
Vous devez modifier la configuration de Vanilla Apache pour stocker les scripts CGI dans un autre dossier.
sudoedit /etc/Apache2/sites-enabled/000-default
Ajoutez ce qui suit dans la directive <VirtualHost>
:
ScriptAlias /test-cgi/ /var/www/test-cgi/
<Directory "/var/www/test-cgi">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
Ensuite, dans la ligne de commande:
Sudo mkdir /var/www/test-cgi
sudoedit /var/www/test-cgi/test.sh
Ensuite, en ligne de commande, redémarrez Apache:
Sudo apachectl restart
Comme avec La méthode rapide , la sortie CGI doit être servie à http: //localhost/test-cgi/test.sh = (remplacez "localhost" par le domaine du serveur si vous développez à distance).
Si vous avez des problèmes, consultez la documentation officielle d'Apache .