Recherche de site Web

Comment installer la pile Apache, MariaDB et PHP (FAMP) sur FreeBSD


Ce guide décrira comment installer et configurer FBAMP dans le système d'exploitation FreeBSD, qui est similaire à une pile LAMP sous Linux. FBAMP est un acronyme qui désigne une collection de logiciels basés sur le système d'exploitation FreeBSD, le serveur Apache HTTP, le serveur Web open source le plus populaire sur Internet, MariaDB< système de gestion de base de données relationnelle (SGBDR), un fork du moteur de base de données MySQL et PHP côté serveur.

Exigences

  1. Une nouvelle installation de FreeBSD
  2. Configurations initiales de FreeBSD
  3. Accès direct à la console ou SSH en cas de connexion à distance à FreeBSD.
  4. Une adresse IP statique configurée sur une interface réseau.

Étape 1 : Installer Apache sur FreeBSD

1. Le premier service que nous installerons est le serveur Apache HTTP. Par défaut, FreeBSD propose plusieurs versions avec différents modules de travail d'exécution pour le serveur Web Apache.

Les versions sont précompilées dans un package binaire et fournies par les référentiels FreeBSD PORTS. Pour afficher tous les binaires des packages Apache fournis par PORTS, exécutez la commande suivante.

ls /usr/ports/www/ | grep apache

Vous pouvez également rechercher les packages Apache pré-conformes disponibles sur FreeBSD en exécutant la commande ci-dessous.

pkg search apache2

2. Ensuite, installez la dernière version du serveur HTTP Apache avec tous les modules requis en exécutant la commande suivante.

pkg install apache24

3. Une fois le serveur Web Apache installé sur le système, exécutez la commande suivante pour activer le démon à l'échelle du système dans FreeBSD.

sysrc apache24_enable="yes"

Une autre méthode pour activer le démon Apache serait de modifier et d'ajouter manuellement la ligne apache24_enable="yes" dans le fichier /etc/rc.conf comme illustré dans la capture d'écran ci-dessous.

4. Enfin, pour tester si le serveur Web fonctionne correctement, démarrez le démon Apache en exécutant la commande ci-dessous et visitez la page Web par défaut en pointant un navigateur vers l'adresse IP de votre serveur FQDN ( http://IP-orFQDN), comme indiqué dans la capture d'écran ci-dessous.

service apache24 start

Le répertoire racine Web par défaut du serveur Web Apache dans FreeBSD 11.x se trouve dans le chemin système /usr/local/www/apache24/data/. Vous y trouverez un petit fichier index.html que vous pourrez éditer selon vos préférences.

Étape 2 : Installer PHP sur FreeBSD

5. FreeBSD 11.x propose plusieurs versions du langage côté serveur interprété PHP, regroupées dans des binaires pré-conformes. Pour obtenir une liste de tous les packages de versions PHP disponibles fournis par les référentiels de ports FreeBSD, exécutez la commande suivante.

ls /usr/ports/lang/ | grep php

Une méthode alternative pour rechercher toutes les versions disponibles du package FreeBSD PHP consiste à exécuter la commande ci-dessous.

pkg search -o php

6. Pour rechercher tous les binaires disponibles fournis par FreeBSD pour une version spécifique de PHP (versions 5 ou 7 actuellement), exécutez les commandes ci-dessous. Utilisez la commande less pour affiner et parcourir la sortie.

pkg search php5 |less
pkg search php7

7. Pour être plus précis sur les modules fournis par une version PHP personnalisée, exécutez la commande suivante comme décrit ci-dessous, qui affiche tous les modules disponibles pour la version PHP 7.1.

pkg search php71

8. Dans ce guide, nous allons installer la version PHP 7.1 pour notre pile FBAMP. Exécutez la commande suivante pour installer PHP avec certains des modules les plus importants requis pour une installation CMS typique.

pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

9. Ensuite, nous devons créer le fichier de configuration php.conf pour le serveur Web Apache dans /usr/local/etc/apache24/Includes/ chemin système avec le contenu suivant.

nano /usr/local/etc/apache24/Includes/php.conf

Ajoutez les lignes suivantes au fichier php.conf.

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

10. Afin de tester si la passerelle PHP fonctionne comme prévu avec le serveur Web Apache, créez un fichier PHP info.php dans /usr/local/www/ chemin apache24/data/system, qui est le chemin racine du document Web par défaut du serveur Web Apache.

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Redémarrez le démon Apache pour appliquer les modifications.

service apache24 restart

Ensuite, visitez l'URI suivant dans un navigateur pour afficher le résumé PHP.

http://IP-or-FQDN/info.php 

11. Afin d'activer le fichier de configuration PHP ini pour la production, exécutez les commandes ci-dessous. Vous pouvez modifier le fichier de production php.ini afin de modifier divers paramètres PHP dans votre pile FBAMP.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Étape 3 : Installer MariaDB sur FreeBSD

12. Le dernier composant manquant pour notre pile FBAMP est le serveur de base de données MySQL. FreeBSD 11.x propose plus de 1 000 packages pour diverses bases de données.

Afin d'afficher les composants disponibles pour les bases de données MariaDB ou MySQL, exécutez les commandes suivantes. Dans ce guide, nous installerons la base de données MariaDB sur MySQL (qui appartient désormais et est activement développée par Oracle).

ls -al /usr/ports/databases/ | grep mariadb
pkg search -o mariadb
ls -al /usr/ports/databases/ | grep mysql
pkg search -o mysql5

13. Dans ce guide, nous installerons la dernière version du serveur de base de données MariaDB dans FreeBSD, qui est actuellement représentée par la version du package binaire mariadb102.

Exécutez la commande suivante afin d'installer le serveur et le client MariaDB ainsi que le module PHP 7.1 requis pour accéder à la base de données via la passerelle du serveur Apache.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. Ensuite, activez le serveur MariaDB à l'échelle du système et démarrez le démon de base de données en exécutant les commandes suivantes.

sysrc mysql_enable="yes" 
service mysql-server start

15. Pour sécuriser la base de données, exécutez mysql_secure_installation script. Utilisez l'extrait de sortie de script ci-dessous pour renforcer MariaDB.

/usr/local/bin/mysql_secure_installation
Exemple de sortie

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

16. Par défaut, le démon MariaDB écoute les connexions réseau en dehors de localhost sur le port 3306/TCP. Exécutez la commande netstat, lsof ou sockstat pour obtenir l'état du socket MariaDB. Cette configuration est dangereuse et expose le service à des attaques réseau extérieures.

lsof -i4 -i6
sockstat -4 -6

17. Si vous n'avez pas besoin d'un accès à distance à MariaDB, assurez-vous que le démon MariaDB écoute uniquement localhost, en exécutant la commande ci-dessous. Ensuite, redémarrez le service MariaDB pour appliquer les modifications.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. Encore une fois, exécutez la commande netstat, lsof ou sockstat afin de répertorier les sockets réseau MariaDB. Le socket doit maintenant se lier et écouter sur localhost, comme illustré dans l'image ci-dessous.

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. Pour tester la connectivité de la base de données MariaDB à partir de la console, exécutez la commande suivante. Entrez le mot de passe root MySQL dans l'invite et une liste des bases de données par défaut devrait s'afficher sur l'écran de votre console, comme illustré dans l'image ci-dessous.

mysql -u root -p -e "show databases"

C'est tout! Vous avez installé avec succès le serveur Web Apache avec la base de données MariaDB et l'interpréteur PHP dans FreeBSD. Vous pouvez désormais commencer à déployer un site Web WordPress en un rien de temps.

Dans le prochain didacticiel, nous aborderons certains sujets avancés sur FPBAMP, tels que la façon d'activer et de créer des hôtes virtuels Apache, d'activer le module de réécriture requis par le fichier .htaccess pour fonctionner correctement et comment sécuriser les connexions Apache à l'aide d'un Certificat auto-signé ou certificat gratuit proposé par l'entité Let's Encrypt.