Utiliser le Raspberry Pi comme serveur PHP

Le raspi peut servir de serveur local ou Internet. Il envoie des pages HTML au navigateur ou exécute des scripts à distance.

Je recommanderai d'installer la nouvelle version de Raspbian nommée Pixel, cela permet de configurer l'ensemble du système avec l'interface graphique, donc plus facilement.

Installer un serveur Apache/PHP classique

PHP est une option ici, on peut utiliser Apache avec tout type de langage, y compris JavaScript.

Installer Apache

Le raspi étant connecté à Internet, tapez:

sudo apt-get install apache2 -y

Installer PHP (en option):

sudo apt-get install php5 libapache2-mod-php5 -y

PHP 7 n'est pas disponible dans la version actuelle (11/2016) de Raspbian (ni même Debian), il serait possible de l'installer, mais ce serait trop compliqué pour une simple démonstration.

On vérifie maintenant que PHP fonctionne, tapez:

php -v

Cela doit afficher "PHP 5.6".

On va maintenant placer un fichier accessible à un client distant.

Aller dans le répertoire contenant le répertoire public:

cd /var/www

On y trouve le répertoire public pour Apache qui est html. Mais, c'est un des charmes de Linux, il vous faut pouvoir accéder au contenu. Tapez:

sudo chown pi: www

Vous avez maintenant les droits d'accès pour placer des fichiers dans /var/www/html.

Il vous faut maintenant supprimer index.html qui se trouve déjà dans le répertoire ou lui donner un autre nom.

Créez le fichier index.php avec l'éditeur de texte à partir de la ligne de commande. Allez dans /var/www/html et taper:

sudo leafpad index.php

L'utilisation de sudo vous évitera l'enfer des droits d'accès que l'on rencontrera avec l'éditeur utilisé à partir de l'interface graphique.
Un script minimal comme contenu du fichier index pour vérifier que tout fonctionne:

<?php echo date("Y-m-d : Serveur en ligne..."; ?>

Pour accéder au Pi, il vous faut l'adresse IP de l'appareil. Elle s'affiche quand on passe la souris sur l'icône du réseau:

eth0: Configured nnn.nnn.nnn.nnn/nn 

A partir du navigateur sur un autre ordinateur connecté à Internet, tapez l'IP du raspi:

http://nnn.nnn.n.nn

Et vous verrez alors affichés la date et le message "Serveur en ligne...".
Pas besoin donc de démarrer Apache sur le raspi.

Lors de la prochaine session, vous serez en ligne de commande, il faudra lancer raspi-config pour restaurer le mode graphique si besoin.