Apache sur Orange Pi Zéro

Installation du serveur web Apache 2

Apache2 est l’une des applications de serveur web les plus utilisées au monde, robuste et fiable. Elle tourne parfaitement sur des SBC (Single-Board Computer) comme l’Orange Pi Zéro.
Pour la mise en route d’un Orange Pi comme l’Orange Pi-Zéro, voir l’article suivant: https://f1atb.fr/index.php/fr/2020/03/27/mise-en-route-orange-pi-zero/

Une fois la mise en route faite, assurez vous d’avoir une configuration à jour avec:

apt-get update
apt-get upgrade

Si vous n’êtes pas en « root » rajoutez sudo devant les commandes.
Installez Apache2:

apt install apache2 -y

Testez le fonctionnement d’Apache en ouvrant la page web à l’adresse IP de votre Orange PI

Page d’accueil par défaut.
http://<adresse IP>
ex: http://192.168.0.100

Par défaut, le site web se trouve dans le dossier /var/www/html/dossier et Apache retourne le fichier/var/www/html/index.html.

Vous pouvez à présent installer les pages de votre site web dans un autre dossier comme par exemple /home/xxxx/Html et configurez le serveur en conséquence dans le fichier de configuration par défaut..

nano /etc/apache2/sites-available/000-default.conf
        ServerAdmin webmaster@localhost
        DocumentRoot /home/xxxx/Html
        ScriptAlias "/cgi-bin/" "/home/xxxx/Html/cgi-bin/"
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/xxxx/Html/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Require all granted
        </Directory>
        <Directory "/home/xxxx/Html/cgi-bin/">
                AllowOverride None
                Options +ExecCGI
                AddHandler cgi-script .cgi .pl .py
                Require all granted
        </Directory>

Dans le dossier Html on a un sous-dossier cgi-bin qui permettra d’exécuter des scripts en python ou perl. Il faut indiquer à Apache où se trouve ce dossier particulier qui peut être ailleurs afin de ne pas renvoyer simplement les fichiers scripts mais de lancer leur exécution en local.

Test du serveur

Dans le dossier Html, mettez une page web simple: index.html.

<!DOCTYPE html>
<html>
  <body>
  <h1>Test de mon site</h1>
  </body>
</html>

Redémarrez le serveur Apache2:

service apache2 restart

Appelez la page depuis un navigateur

http://<adresse IP>

Test DES scripts dynamiques

CGI (Common Gateway Interface) définit une méthode d’interaction entre un serveur web et des programmes générateurs de contenu externes, plus souvent appelés programmes CGI ou scripts CGI. Il s’agit d’une méthode simple pour ajouter du contenu dynamique à votre site web en utilisant votre langage de programmation préféré comme perl ou python. Ici seul dans le dossier cgi-bin les programmes seront exécutables comme défini par la directive ScriptAlias du fichier de configuration d’Apache. 

Dans le dossier cgi-bin, mettez un petit fichier ‘test.py’ en python pour tester son exécution. Rendez ce fichier executable.

#!/usr/bin/python3

print("Content-type:text/html\n\n")
print("hello")

Appelez la page depuis un navigateur

http://<adresse IP>/cgi-bin/test.py

Si le programme s’exécute, c’est bon. Si vous avez en retour le listing du code il est possible que le module cgid.load ne soit pas chargé par Apache. Allez voir dans le dossier /etc/apache2/mods-enabled si le fichier cgid.load est présent. Si non, il est disponible dans mods-available. On peut l’activer par la commande:

 a2enmod cgid