[Mise à jour le 9/7/2024]
Le logiciel libre Apache HTTP Server est un serveur HTTP créé et maintenu au sein de la fondation Apache. Jusqu'en avril 2019, ce fut le serveur HTTP le plus populaire du World Wide Web. Il est distribué selon les termes de la licence Apache. Wikipédia
sudo apt update && sudo apt upgrade -y # A entrer dans une console (mise à jour) sudo apt update # Vérification de la mise à jour
# chown -R [UTILISATEUR]:[GROUPE] Répertoire # -R change les modes de tous les fichiers dans les sous-répertoires de manière récursive. sudo chown -R pi:www-data /var/www/html/ # l'utilisateur pi devient propriétaire de /var/www/html/ # www-data devient le groupe avec les droits sur /var/www/html/ sudo chmod -R 770 /var/www/html/ # pi et www-data ont tous les droits sur /var/www/html/, les autres aucun
Exemple
apt-cache policy apache2 # Exemple d'affichage obtenu # apache2: # Installé : 2.4.25-3+deb9u9 # Candidat : 2.4.25-3+deb9u9 # Table de version : # *** 2.4.25-3+deb9u9 500 # 500 http://raspbian.raspberrypi.org/raspbian stretch/main armhf Packages # 100 /var/lib/dpkg/status
Entrer l'@IP du Raspberry dans un navigateur pour afficher la page ci-dessous.
Apache utilise le répertoire /var/www/html comme racine pour le site. Cela signifie que quand on s'adresse au Raspberry sur le port 80 (HTTP), Apache cherche le fichier dans /var/www/html.
Exemple : si on entre l’adresse http://127.0.0.1/example, Apache cherchera le fichier example dans le répertoire /var/www/html.
PHP (officiellement, ce sigle est un acronyme récursif pour PHP Hypertext Preprocessor) est un langage de scripts généraliste et Open Source, spécialement conçu pour le développement d'applications Web côté serveur. Il peut être intégré facilement au HTML.
sudo apt install php php-common -y # installe les extensions communes (bz2, calendar, Core, ctype, # curl, date, etc.)pour les paquets PHP
sudo apt -y install php-mbstring # nécessaire pour le stockage et l'affichage des caractères multioctets
php -v # Exemple d'affichage obtenu # PHP 7.3.11-1~deb10u1 (cli) (built: Oct 26 2019 14:14:18) ( NTS ) # Copyright (c) 1997-2018 The PHP Group # Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies # with Zend OPcache v7.3.11-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
Créer un fichier index.php dans /var/www/html/ avec touch et y placer le code ci-dessous avec nano. Le tester dans un navigateur.
Une page ressemblant à la copie d'écran ci-dessous doit s'afficher.
MariaDB est un système de gestion de base de données édité sous licence GPL. Il s'agit d'un fork communautaire de MySQL : la gouvernance du projet est assurée par la fondation MariaDB, et sa maintenance par la société Monty Program AB, créateur du projet. Wikipédia
sudo apt install mariadb-server php-mysql -y # on installe mariadb-server et php-mysql # (qui servira de lien entre php et mysql)
sudo mysql --user=root # Connexion à la base # Exemple d'affichage obtenu # Welcome to the MariaDB monitor. Commands end with ; or \g. # Your MariaDB connection id is 47 # Server version: 10.3.17-MariaDB-0+deb10u1 Raspbian 10 # Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. # Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. # MariaDB [(none)]>
Nous allons maintenant supprimer l’utilisateur root et créer un nouvel utilisateur root, car celui par défaut n’est utilisable que par le compte administrateur du système, et n’est donc pas accessible aux scripts PHP du serveur.
Pour cela, une fois connecté à mariaDB (invite MariaDB[(none)], lancez les commandes suivantes (remplacez password par le mot de passe de votre choix) :
DROP USER 'root'@'localhost'; # Suppression de root CREATE USER 'root'@'localhost' IDENTIFIED BY 'password'; # password à remplacer GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; # Se déconnecter avec Ctrl-C
PHPMyAdmin est une application développée en PHP qui vise à fournir une interface simplifiée pour MariaDB (MySQL). Elle permet notamment de voir le contenu d'une base de données, ou de la manipuler sans avoir besoin de faire des requêtes MySQL.
sudo apt install phpmyadmin -y
Choisir l'utilisation de PHPMyAdmin pour un serveur Apache.
Comme la base de données a déjà été configurée, choisir “NON” à la question concernant l’utilisation de dbconfig-common.
Si nécessaire, activer l’extension mysqli avec les commandes suivantes :
sudo phpenmod mysqli sudo /etc/init.d/apache2 restart
Exemples
127.0.0.1/phpmyadmin # sur le Raspberry 192.168.x.y/phpmyadmin # sur un réseau local
# Création d'un lien symbolique (-s) entre la source et la destination sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
La page de connexion ci-dessous doit s'afficher dans le navigateur.
cURL est un outil en ligne de commande qui permet de transférer des données depuis ou vers un serveur. Cet outil prend en charge divers protocoles réseau tels que HTTP, HTTPS, FTP, SFTP, SCP, etc. Curl peut être utilisé pour automatiser des tâches Web, télécharger des fichiers, envoyer des requêtes HTTP, pour l'exploration Web, etc. Wikipédia