Comment installer la pile FAMP (Apache / MySQL / PHP) sur FreeBSD 12

La pile FAMP, qui s’apparente à une pile LAMP sur Linux, est une collection de logiciels open-source qui sont généralement installés ensemble pour permettre à un serveur FreeBSD d’héberger des sites et des applications web dynamiques. FAMP est un acronyme qui signifie FreeBSD(système d’exploitation), Apache(serveur HTTP), MySQL/MariaDB(serveur de base de données) et PHP(langage de programmation pour traiter le contenu dynamique PHP).

Dans ce tutoriel, nous allons configurer les composants d’une pile FAMP sur un serveur FreeBSD 12.1 en utilisant pkg, le gestionnaire de paquets de FreeBSD.

Configuration requise

Avant de commencer ce guide, tu auras besoin des éléments suivants :

  • Un serveur FreeBSD 12.1.
  • Un utilisateur avec des privilèges root ou sudo pour effectuer des changements de configuration.
  • Une familiarité de base avec le système FreeBSD et l’interface de ligne de commande est recommandée.

Avant de commencer

Vérifie la version de FreeBSD :

freebsd-version
# 12.1-RELEASE

Assure-toi que ton système FreeBSD est à jour :

freebsd-update fetch install
pkg update && pkg upgrade -y

Installe les paquets nécessaires :

pkg install -y sudo vim bash curl

Crée un nouveau compte utilisateur avec ton nom d’utilisateur préféré. Nous utilisons johndoe:

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Exécute la commande visudo et décommente la ligne %wheel ALL=(ALL) ALL, pour permettre aux membres du groupe wheel d’exécuter n’importe quelle commande :

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Maintenant, passe à ton utilisateur nouvellement créé avec su:

su - johndoe

NOTE : Remplace johndoe par ton nom d’utilisateur.

Configure le fuseau horaire :

sudo tzsetup

Étape 1 – Installation d’Apache 2.4

Le serveur Web Apache est actuellement l’un des serveurs Web les plus populaires au monde. C’est un excellent choix pour héberger un site Web.

Tu peux installer Apache à l’aide du gestionnaire de paquets de FreeBSD, pkg. Un gestionnaire de paquets te permet d’installer la plupart des logiciels sans effort à partir d’un référentiel maintenu par FreeBSD.

Pour installer Apache, lance la commande suivante :

sudo pkg install -y apache24

Vérifie la version :

httpd -v
# Server version: Apache/2.4.41 (FreeBSD)

Maintenant, active et démarre Apache :

sudo sysrc apache24_enable=yes
sudo service apache24 start

Pour vérifier qu’Apache a démarré, tu peux exécuter la commande suivante :

sudo service apache24 status

Tu verras alors quelque chose de semblable :

# Output
apache24 is running as pid 17775.

Tu peux vérifier qu’Apache a été installé et qu’il fonctionne sans erreur en visitant l’adresse IP publique de ton serveur dans ton navigateur Web. Accède à http://your_server_IP. Tu verras la page par défaut« Ça marche ! » d’Apache.

Étape 2 – Installation de MySQL 8.0

Maintenant que ton serveur Web est opérationnel, il est temps d’installer MySQL, le système de gestion des bases de données relationnelles. Le serveur MySQL organisera et donnera accès aux bases de données dans lesquelles ton serveur pourra stocker des informations.

Là encore, tu peux utiliser pkg pour obtenir et installer ton logiciel.

Pour installer MySQL 8.0 en utilisant pkg, utilise cette commande :

sudo pkg install -y mysql80-client mysql80-server

Cette commande installera la dernière version du client et du serveur MySQL, qui est actuellement 8.x.x.

Vérifie la version :

mysql --version
# mysql  Ver 8.0.17 for FreeBSD12.0 on amd64 (Source distribution)

Maintenant, active et démarre MySQL :

sudo sysrc mysql_enable=yes
sudo service mysql-server start

Pour vérifier que MySQL a démarré, tu peux exécuter la commande suivante :

sudo service mysql-server status

Tu verras quelque chose de similaire à ce qui suit :

# Output
mysql is running as pid 19171.

Comme bonne pratique, tu peux exécuter le script de sécurité mysql_secure_installation qui supprimera certains paramètres par défaut non sécurisés et limitera légèrement l’accès à ton système de base de données :

sudo mysql_secure_installation

Il te sera demandé de définir un mot de passe, suivi de quelques autres questions. Saisis un mot de passe fort, puis pour les autres questions, appuie sur :key_enter : pour sélectionner les valeurs par défaut.

Étape 3 – Installation de PHP 7.4

PHP est un langage de script côté serveur conçu pour le développement Web. PHP est un composant indispensable de la pile FAMP. Par ailleurs, Python ou Perl sont couramment utilisés à la place de PHP. Cependant, PHP, qui est l’option la plus populaire, est utilisé le plus souvent. Associé à la base de données, il donnera à tes sites Web ou à tes applications un comportement dynamique.

Une fois de plus, utilise le système pkg pour installer les composants PHP.

Pour installer PHP 7.4 avec pkg, exécute cette commande :

sudo pkg install -y php74 php74-mysqli mod_php74

Cela installe les paquets php74, mod_php74, et php74-mysqli.

Vérifie la version de PHP :

php --version

# PHP 7.4.1 (cli) (built: Jan  2 2020 01:32:38) ( NTS )
# Copyright (c) The PHP Group
# Zend Engine v3.4.0, Copyright (c) Zend Technologies

Copie l’exemple de fichier de configuration PHP en place avec cette commande :

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Maintenant, active et démarre PHP-FPM :

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Pour vérifier que PHP-FPM a démarré, tu peux exécuter la commande suivante :

sudo service php-fpm status

Tu verras alors quelque chose de similaire :

# Output
php_fpm is running as pid 23005.

Installation des modules PHP (facultatif)

Pour améliorer les fonctionnalités de PHP, tu peux éventuellement installer des modules supplémentaires.

Pour voir les modules PHP actuellement compilés, tu peux exécuter cette commande :

php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard
# [Zend Modules]

Pour rechercher les modules PHP disponibles, tu peux utiliser cette commande :

pkg search ^php74-*

Les résultats seront principalement des modules PHP 7.4 que tu peux installer :

# Output
# php74-7.4.0                    PHP Scripting Language
# php74-Ice37-3.7.2_1            Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php74-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php74-aphpunit-1.9             Testing framework for unit tests
# php74-bcmath-7.4.0             The bcmath shared extension for php
# php74-brotli-0.7.0             Brotli extension for PHP
# php74-bsdconv-11.5.0           PHP wrapper for bsdconv
# php74-bz2-7.4.0                The bz2 shared extension for php
# php74-calendar-7.4.0           The calendar shared extension for php
# php74-composer-1.8.6           Dependency Manager for PHP
# php74-ctype-7.4.0              The ctype shared extension for php
# php74-curl-7.4.0               The curl shared extension for php
# . . .

Si, après avoir fait des recherches, tu décides que tu dois installer un paquet, tu peux le faire en utilisant la commande pkg install. La plupart des applications Web PHP nécessitent des modules supplémentaires, il est donc bon de savoir comment les rechercher.

Étape 4 - Configurer Apache pour utiliser le module PHP

Avant d'utiliser PHP, tu dois le configurer pour qu'il fonctionne avec Apache.

Exécute sudo vim /usr/local/etc/apache24/modules.d/001_mod-php.conf et remplis le fichier avec le contenu ci-dessous :

<IfModule dir_module>
  DirectoryIndex index.php index.html
  <FilesMatch "\.php$">
    SetHandler application/x-httpd-php
  </FilesMatch>
  <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
  </FilesMatch>
</IfModule>

Sauvegarde le fichier et quitte vim.

Vérifie la configuration d'Apache :

sudo apachectl configtest

Comme tu as apporté des modifications à la configuration d'Apache, tu dois recharger le service pour qu'elles soient appliquées. Sinon, Apache fonctionnera toujours avec la configuration précédente :

sudo apachectl restart

Étape 5 - Test du traitement PHP

Pour tester que ton système est correctement configuré pour PHP, tu peux créer un script PHP très basique. Tu appelleras ce script info.php. Par défaut, le site DocumentRoot est défini sur /usr/local/www/apache24/data. Tu peux créer le fichier info.php sous cet emplacement en tapant :

sudo vim /usr/local/www/apache24/data/info.php

Et ajoute ce code à ce fichier :

<?php phpinfo(); ?>

Navigue sur http://your_server_IP/info.php et tu verras la page suivante :

Info PHP sur FreeBSD 12

Après l'installation et la configuration de la pile FAMP, tu dois supprimer le fichier info.php pour éviter de divulguer les informations sur le serveur au public :

sudo rm /usr/local/www/apache24/data/info.php

Conclusion

Félicitations, tu as réussi à installer une pile FAMP sur ton serveur FreeBSD 12.1. Tu as maintenant plusieurs choix pour savoir ce que tu vas faire ensuite. Tu as installé une plateforme qui te permettra d'installer la plupart des types de sites et de logiciels Web par-dessus.

Vous aimerez aussi...