web-dev-qa-db-fra.com

Quelles sont les étapes à suivre pour exécuter un script CGI Hello World stock?

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?

7
Jjed

Le moyen rapide

Installer le serveur Web Apache

Dans l'application en ligne de commande (Terminal):

Sudo apt-get install Apache2

Rendez votre script exécutable par Apache

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/

Visitez la sortie sur votre serveur local

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.

Stocker les scripts CGI dans/var/www/test-cgi plutôt que/usr/lib/cgi-bin /

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).

Dépannage

Si vous avez des problèmes, consultez la documentation officielle d'Apache .

9
Barbarrosa