Comment installer une pile Apache, MySQL et PHP (FAMP) sur FreeBSD 12.0

L’auteur a sélectionné le Free and Open Source pour recevoir un don dans le cadre du Write for DOnations programme.

introduction

Une pile FAMP, similaire à une pile LAMP sous Linux, est un groupe de logiciels open source généralement installés ensemble pour permettre à un serveur FreeBSD d’héberger des sites Web dynamiques et des applications Web. FAMP est un acronyme signifiant F reeBSD (système d’exploitation), A pache (serveur Web), M ySQL (serveur de base de données) et P HP (à traiter). contenu PHP dynamique).

Dans ce guide, une pile FAMP sera installée sur un serveur cloud FreeBSD 12.0 à l’aide de + pkg +, le gestionnaire de paquets FreeBSD.

Conditions préalables

Avant de commencer ce guide, vous aurez besoin des éléments suivants:

  • Un FreeBSD 12.0 Droplet.

  • Accès à un utilisateur disposant de privilèges root (ou autorisé à l’aide de sudo) afin de modifier la configuration.

  • Un pare-feu configuré à l’aide de ce didacticiel à l’adresse Etapes recommandées pour les nouveaux serveurs FreeBSD 12.0. Assurez-vous d’ouvrir les ports + 80 + et + 443 + dans le cadre de votre configuration.

  • Une connaissance de la CLI (interface de ligne de commande) est recommandée. L’éditeur vi de FreeBSD a des syntax as vim presque identiques. .

Étape 1 - Installer Apache

Le serveur Web Apache est actuellement le serveur Web le plus populaire au monde, ce qui en fait un excellent choix pour l’hébergement d’un site Web.

Vous pouvez installer Apache en utilisant le gestionnaire de paquets de FreeBSD, + pkg +. Un gestionnaire de paquets vous permet d’installer la plupart des logiciels sans douleur à partir d’un référentiel maintenu par FreeBSD. Vous pouvez en apprendre plus sur how à utiliser + pkg + ici.

Pour installer Apache avec + pkg +, utilisez cette commande:

sudo pkg install apache

Entrez + y + à l’invite de confirmation pour installer Apache et ses dépendances.

Pour activer Apache en tant que service, ajoutez + apache_enable =" YES "+ au fichier + / etc / rc.conf +. Vous utiliserez la commande + sysrc + pour faire exactement cela:

sudo sysrc apache_enable="YES"

Maintenant démarrez Apache:

sudo service apache start

Pour vérifier que Apache a démarré, vous pouvez exécuter la commande suivante:

sudo service apache status

En conséquence, vous verrez quelque chose de similaire à:

Outputapache is running as pid .

Vous pouvez immédiatement effectuer une vérification ponctuelle pour vérifier que tout s’est passé comme prévu en visitant l’adresse IP publique de votre serveur dans votre navigateur Web. Consultez la note sous l’en-tête suivant pour savoir quelle est votre adresse IP publique, si vous ne possédez pas déjà ces informations:

http:///

Vous verrez la page Web par défaut Apache de FreeBSD, qui est là pour des tests. Vous verrez: * Ça marche! *, Ce qui indique que votre serveur Web est correctement installé.

Comment trouver l’adresse IP publique de votre serveur

Si vous ne connaissez pas l’adresse IP publique de votre serveur, vous pouvez la trouver de différentes façons. Il s’agit généralement de l’adresse que vous utilisez pour vous connecter à votre serveur via SSH.

Si vous utilisez DigitalOcean, vous pouvez rechercher l’adresse IP de votre serveur dans le Panneau de configuration. Vous pouvez également utiliser le service de métadonnées DigitalOcean, à partir du serveur lui-même, avec la commande suivante: + curl -w" \ n "http: // 169.254.169.254 / metadata / v1 / interfaces / public / 0 / ipv4 / address +.

Une façon plus universelle de rechercher l’adresse IP consiste à utiliser la commande + ifconfig +, sur le serveur lui-même. La commande + ifconfig + affichera des informations sur vos interfaces réseau. Pour limiter la sortie à l’adresse IP publique du serveur uniquement, utilisez cette commande (notez que la partie mise en surbrillance est le nom de l’interface réseau et peut varier):

ifconfig  | grep "inet " | awk '{ print $2; exit }'

Vous pouvez également utiliser + curl + pour contacter une partie externe, telle que icanhazip, pour vous indiquer comment il voit votre serveur. Ceci est fait en demandant à un serveur spécifique quelle est votre adresse IP:

curl http://icanhazip.com

Maintenant que vous avez l’adresse IP publique, vous pouvez l’utiliser dans la barre d’adresse de votre navigateur Web pour accéder à votre serveur Web.

Étape 2 - Installation de MySQL

Maintenant que votre serveur Web est opérationnel, il est temps d’installer MySQL, le système de gestion de base de données relationnelle. Le serveur MySQL organisera et fournira un accès aux bases de données sur lesquelles votre serveur peut stocker des informations.

Encore une fois, vous pouvez utiliser + pkg + pour acquérir et installer votre logiciel.

Pour installer MySQL avec + pkg +, utilisez cette commande:

sudo pkg install mysql-server

Entrez + y + à l’invite de confirmation pour installer le serveur MySQL et les packages client.

Pour activer le serveur MySQL en tant que service, ajoutez + mysql_enable =" YES "+ dans le fichier + / etc / rc.conf +. Vous pouvez utiliser la commande + sysrc + pour faire exactement cela:

sudo sysrc mysql_enable="YES"

Maintenant démarrez le serveur MySQL avec la commande suivante:

sudo service mysql-server start

Vous pouvez vérifier que le service est opérationnel:

sudo service mysql-server status

Vous lirez quelque chose de similaire à ce qui suit:

Outputmysql is running as pid .

Maintenant que votre base de données MySQL est en cours d’exécution, vous souhaiterez exécuter un simple script de sécurité permettant de supprimer certaines valeurs par défaut dangereuses et de limiter légèrement l’accès à votre système de base de données. Démarrez le script interactif en exécutant cette commande:

sudo mysql_secure_installation

L’invite vous demandera si vous souhaitez définir un mot de passe. Comme vous venez d’installer MySQL, vous n’en aurez probablement pas. Par conséquent, tapez + Y + et suivez les instructions:

Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No:

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :

Pour le reste des questions, vous devez appuyer sur la touche + y + à chaque invite pour accepter les valeurs sécurisées recommandées. Cela supprimera des exemples d’utilisateurs et de bases de données, désactivera les connexions à la racine distante et chargera ces nouvelles règles afin que MySQL respecte immédiatement les modifications que vous avez apportées.

À ce stade, votre système de base de données est maintenant configuré et vous pouvez passer à l’installation de PHP.

Étape 3 - Installation de PHP

PHP est le composant de votre configuration qui traitera le code pour afficher le contenu dynamique. Il peut exécuter des scripts, se connecter à des bases de données MySQL pour obtenir des informations et transmettre le contenu traité au serveur Web à afficher.

Vous pouvez à nouveau utiliser le système + pkg + pour installer vos composants. Vous allez également inclure les packages + mod_php,` + php-mysql` et + php-mysqli.

Pour installer PHP avec + pkg +, exécutez cette commande:

sudo pkg install php php-mysqli mod_php

Entrez + y + à l’invite de confirmation. Ceci installe les paquets + php,` + mod_php` et + php-mysqli.

Maintenant, copiez le fichier de configuration PHP avec cette commande:

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

Exécutez maintenant la commande + rehash + pour régénérer les informations mises en cache du système concernant vos fichiers exécutables installés:

rehash

Avant d’utiliser PHP, vous devez le configurer pour fonctionner avec Apache.

Installation de modules PHP (facultatif)

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

Pour voir les options disponibles pour les modules et les bibliothèques PHP, vous pouvez taper ceci:

pkg search php

Les résultats seront principalement des modules PHP que vous pouvez installer:

Outputphp73-7.3.5                    PHP Scripting Language
php73-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
php73-aphpunit-1.8             Testing framework for unit tests
php73-bcmath-7.3.5             The bcmath shared extension for php
php73-brotli-0.6.2             Brotli extension for PHP
php73-bsdconv-11.5.0           PHP wrapper for bsdconv
php73-bz2-7.3.5                The bz2 shared extension for php
php73-calendar-7.3.5           The calendar shared extension for php
php73-composer-1.8.4           Dependency Manager for PHP
php73-ctype-7.3.5              The ctype shared extension for php
php73-curl-7.3.5               The curl shared extension for php
php73-dba-7.3.5                The dba shared extension for php
php73-deployer-6.4.3           Deployment tool for PHP
php73-dom-7.3.5                The dom shared extension for php

...

Pour obtenir plus d’informations sur chaque module, vous pouvez effectuer une recherche sur Internet ou consulter la description longue du package en tapant:

pkg search -f

Il y aura beaucoup de sorties, avec un champ appelé * Comment * qui expliquera les fonctionnalités fournies par le module.

Par exemple, pour savoir ce que fait le paquet ++, vous pouvez taper ceci:

pkg search -f

Outre de nombreuses autres informations, vous trouverez quelque chose qui ressemble à ceci:

Outputphp73-calendar-7.3.5
Name           : php73-calendar
Version        : 7.3.5
...
Comment        : The calendar shared extension for php
...

Si, après avoir effectué des recherches, vous décidez d’installer un paquet, vous pouvez le faire en utilisant la commande + pkg install +.

Par exemple, si vous décidez que ++ est quelque chose dont vous avez besoin, vous pouvez taper:

sudo pkg install

Si vous souhaitez installer plusieurs modules à la fois, vous pouvez le faire en les énumérant, séparés par un espace, en suivant la commande + pkg install +, comme ceci:

sudo pkg install

Étape 4 - Configuration d’Apache pour utiliser le module PHP

Apache HTTP a un répertoire dédié pour y écrire des fichiers de configuration pour des modules spécifiques. Vous écrirez un de ces fichiers de configuration pour Apache HTTP afin de «parler» PHP.

sudo vi /usr/local/etc/apache24/modules.d/001_mod-php.conf

Ajoutez les lignes suivantes à ce fichier:

/usr/local/etc/apache24/modules.d/001_mod-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>

Maintenant, vérifiez que la configuration HTTP d’Apache est en bon état:

sudo apachectl configtest

Vous verrez le résultat suivant:

OutputPerforming sanity check on apache24 configuration:
Syntax OK

Comme vous avez modifié la configuration dans Apache, vous devez redémarrer le service pour que ceux-ci soient appliqués. Sinon, Apache fonctionnera toujours avec la configuration précédente.

sudo apachectl restart

Vous pouvez maintenant tester PHP sur votre système.

Étape 5 - Test du traitement PHP

Afin de vérifier que votre système est correctement configuré pour PHP, vous pouvez créer un script PHP très basique.

Vous allez appeler ce script + info.php. Pour qu’Apache trouve le fichier et le serve correctement, il doit être enregistré dans un répertoire spécifique ` + DocumentRoot + `-qui est l’endroit où Apache recherchera les fichiers lorsqu’un utilisateur accédera au serveur Web. L’emplacement de `+ DocumentRoot + est spécifié dans le fichier de configuration Apache que vous avez modifié précédemment (+ / usr / local / etc / apache24 / httpd.conf +).

Par défaut, + Document Root est défini sur` + / usr / local / www / apache24 / data`. Vous pouvez créer le fichier + info.php sous cet emplacement en tapant:

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

Cela ouvrira un fichier vierge. Insérez ce code PHP dans le fichier:

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

<?php phpinfo(); ?>

Sauvegarder et quitter.

Vous pouvez maintenant tester si votre serveur Web peut afficher correctement le contenu généré par un script PHP. Pour essayer ceci, vous pouvez visiter cette page dans votre navigateur Web:

http:///info.php

Vous verrez une page de test PHP FreeBSD.

image: https: //assets.digitalocean.com/articles/FAMP12/FAMP.png [FreeBSD info.php]

Cette page vous donne des informations sur votre serveur du point de vue de PHP. C’est utile pour le débogage et pour vous assurer que vos paramètres sont appliqués correctement.

Si cela réussit, votre PHP fonctionne comme prévu.

Vous devez supprimer ce fichier après ce test, car il pourrait en fait fournir des informations sur votre serveur à des utilisateurs non autorisés. Pour ce faire, vous pouvez taper ceci:

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

Vous pouvez toujours recréer cette page si vous devez accéder aux informations ultérieurement.

Conclusion

Maintenant que vous avez une pile FAMP installée, vous avez beaucoup de choix pour ce qu’il faut faire ensuite. Vous avez installé une plate-forme vous permettant d’installer la plupart des types de sites Web et de logiciels Web sur votre serveur.