Recherche de site Web

Comment installer la pile Nginx, MariaDB et PHP (FEMP) sur FreeBSD


Ce didacticiel vous guidera sur la façon d'installer et de configurer FBEMP dans la dernière version de FreeBSD 11.x. FBEMP est un acronyme qui décrit l'ensemble de logiciels suivant :

FreeBSD 11.1 Distribution de type Unix, serveur Web Nginx, système de gestion de base de données relationnelle MariaDB (un fork communautaire de MySQL) et langage de programmation dynamique PHP qui s'exécute côté serveur.

Exigences

  1. Installation de FreeBSD 11.x
  2. 10 choses à faire après l'installation de FreeBSD

Étape 1 : Installer le serveur Web Nginx sur FreeBSD

1. Le premier service que nous installerons pour notre pile FBEMP dans FreeBSD est le serveur Web, représenté par Nginx logiciel.

Le serveur Web Nginx propose davantage de packages pré-conformes disponibles dans FreeBSD 11.x PORTS. Afin d'obtenir une liste des binaires Nginx à partir des référentiels Ports, exécutez les commandes suivantes dans le terminal de votre serveur.

ls /usr/ports/www/ | grep nginx
pkg search -o nginx

2. Dans cette configuration particulière, nous installerons la version principale du package de Nginx en exécutant la commande ci-dessous. La gestion du package pkg vous demandera si vous souhaitez procéder à l'installation du package nginx. Répondez par oui (y en ligne de commande) afin de démarrer le processus d'installation.

pkg install nginx

3. Une fois le package du serveur Web Nginx installé sur votre système, exécutez les commandes suivantes afin d'activer le démon à l'échelle du système et de démarrer le service sur votre système.

sysrc nginx_enable="yes"
service nginx start

4. Ensuite, à l'aide de la commande sockstat, vérifiez les sockets réseau du service Nginx, si elles sont liées au port 80/TCP, en émettant le code ci-dessous commande. La sortie de la commande chaussettestat sera transmise via l'utilitaire grep afin de réduire les résultats renvoyés uniquement à la chaîne nginx.

sockstat -4 | grep nginx

5. Enfin, ouvrez un navigateur sur un ordinateur de bureau de votre réseau et visitez la page Web par défaut de Nginx via le protocole HTTP. Écrivez le FQDN de votre machine ou votre nom de domaine ou l'adresse IP de votre serveur dans l'URL du navigateur déposée pour demander la page Web par défaut du serveur Web Nginx. Le message « Bienvenue sur nginx ! » devrait s'afficher dans votre navigateur, comme illustré dans la capture d'écran ci-dessous.

http://yourdomain.com
http://your_server_IP
http://your_machine_FQDN

6. Le répertoire weboot par défaut pour le contenu Web Nginx situé dans /usr/local/www/nginx/ chemin système absolu. À cet emplacement, vous devez créer, copier ou installer des fichiers de contenu Web, tels que des fichiers .html ou .php, pour votre site Web.

Pour modifier cet emplacement, modifiez le fichier de configuration principal de nginx et modifiez la directive racine pour refléter votre nouveau chemin Webroot.

nano /usr/local/etc/nginx/nginx.conf

Ici, recherchez et mettez à jour la ligne suivante pour refléter votre nouveau chemin webroot :

root	/path/to/new/webroot;

Étape 2 : Installer PHP sur FreeBSD

7. Contrairement au serveur Apache HTTP, Nginx n'a pas la capacité de traiter nativement le code PHP. En retour, le serveur Web Nginx transmet les requêtes PHP à un interpréteur PHP, tel que le démon php-fpm FastCGI, qui inspecte et exécute le code. Le code obtenu est ensuite renvoyé à Nginx, qui réassemble le code au format HTML demandé et envoie le code au navigateur Web du visiteur.

Les référentiels de ports FreeBSD 11.x proposent plusieurs versions binaires pour le langage de programmation PHP, telles que PHP 5.6, PHP 7.0 et PHP 7.1< versions. Afin d'afficher toutes les versions PHP précompilées disponibles dans FreeBSD 11.x, exécutez les commandes ci-dessous.

pkg search -o php
ls /usr/ports/lang/ | grep php

8. Vous pouvez choisir d'installer la version de PHP que vous jugez la mieux adaptée à l'application Web que vous exécutez sur votre système. Cependant, dans ce guide, nous installerons la dernière version de PHP.

Pour installer la version PHP 7.1 et certains modules PHP importants requis pour diverses applications Web, exécutez la commande suivante.

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

9. Après avoir installé les packages PHP sur votre système, ouvrez le fichier de configuration PHP-FPM pour Nginx et ajustez les valeurs de l'utilisateur et du groupe pour qu'elles correspondent à la valeur du runtime Nginx. utilisateur, qui est www. Tout d’abord, effectuez une sauvegarde du fichier avec la commande ci-dessous.

cp /usr/local/etc/php-fpm.d/www.conf{,.backup}

Ensuite, ouvrez le fichier et mettez à jour les lignes suivantes comme présenté dans l'exemple ci-dessous.

user = www
group = www

10. Créez également un fichier de configuration PHP utilisé pour la production en exécutant la commande ci-dessous. Sur ce fichier, vous pouvez apporter des modifications personnalisées qui seront appliquées à l'interpréteur PHP au moment de l'exécution.

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

Par exemple, modifiez le paramètre date.timezone pour l'interpréteur PHP afin de mettre à jour l'emplacement physique de votre machine, comme indiqué dans l'exemple ci-dessous. La liste des fuseaux horaires PHP peut être trouvée ici : http://php.net/manual/en/timezones.php.

vi /usr/local/etc/php.ini

Ajoutez le fuseau horaire suivant (définissez le fuseau horaire selon votre pays).

date.timezone = Europe/London

Vous pouvez également ajuster d'autres variables PHP, telles que la taille maximale du fichier téléchargé, qui peut être augmentée en modifiant les valeurs ci-dessous :

upload_max_filesize = 10M
post_max_size = 10M

11. Après avoir défini les paramètres personnalisés pour PHP, activez et démarrez le démon PHP-FPM afin d'appliquer les nouvelles configurations en exécutant les commandes ci-dessous.

sysrc php_fpm_enable=yes
service php-fpm start

12. Par défaut, le démon PHP-FPM dans FreeBSD se lie à un socket réseau local sur le port 9000/TCP. Pour afficher les sockets réseau PHP-FPM, exécutez la commande suivante.

sockstat -4 -6| grep php-fpm

13. Pour que le serveur Web Nginx transmette les scripts PHP au serveur de passerelle FastCGI, qui écoute sur le socket 127.0.0.1:9000, ouvrez le fichier de configuration principal de Nginx et ajoutez le bloc de code suivant, comme illustré dans l'exemple ci-dessous.

vi /usr/local/etc/nginx/nginx.conf

Bloc de code FastCGI pour nginx :

 location ~ \.php$ {
        root	/usr/local/www/nginx;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;    
        include        fastcgi_params;
        	}

14. Afin d'afficher les informations PHP actuelles de votre serveur, créez un fichier info.php dans le chemin weboot de Nginx en exécutant la commande suivante.

echo "<?php phpinfo(); ?>" | tee /usr/local/www/nginx/info.php

15. Ensuite, testez et redémarrez le démon Nginx pour appliquer les paramètres PHP FastCGI et visitez la page info.php dans un navigateur.

nginx -t # Test nginx configuration file for syntax errors
service nginx restart

Remplacez l'adresse IP ou le nom de domaine dans les liens ci-dessous en conséquence. La page d'informations PHP doit afficher les informations comme illustré dans la capture d'écran ci-dessous.

http://yourdomain.com/info.php
http://server_IP-or-FQDN/info.php

Étape 3 : Installer MariaDB sur FreeBSD

16. Le dernier composant manquant dans votre pile FEMP dans la base de données. MariaDB/MySQL est l'un des logiciels SGBDR open source les plus associés au serveur Web Nginx, utilisé pour le déploiement de sites Web dynamiques.

En fait, MariaDB/MySQL est l'une des bases de données relationnelles les plus utilisées au monde. En effectuant une recherche dans les ports FreeBSD, vous pouvez trouver plusieurs versions de MariaDB/MySQL.

Dans ce guide, nous allons installer la base de données MariaDB, qui est un fork communautaire de la base de données MySQL. Pour rechercher les versions disponibles de MariaDB, exécutez les commandes suivantes dans le terminal.

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

17. Pour installer la dernière version du serveur de base de données MariaDB, exécutez la commande suivante. Vous devez également installer le module pilote de base de données relationnelle PHP utilisé par les scripts PHP pour la connexion à MySQL.

pkg install mariadb102-server php71-mysqli

18. Une fois la base de données installée, activez le démon MySQL et démarrez le service de base de données en exécutant les commandes suivantes.

sysrc mysql_enable="YES" 
service mysql-server start

19. Assurez-vous également de redémarrer le démon PHP-FPM afin de charger l'extension du pilote MySQL.

service php-fpm restart
20. On the next step, secure MariaDB database by launching mysql_secure_installation script. Use the below sample of the installation script in order to answer the questions. Basically, say yes (y) for all asked questions to secure the database and type a strong password for MySQL root user.
/usr/local/bin/mysql_secure_installation
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!

21. Pour tester la connexion à la base de données MariaDB depuis la console, exécutez la commande ci-dessous.

mysql -u root -p -e "show status like ‘Connections’"

22. Afin de sécuriser davantage MariaDB, qui par défaut écoute les connexions réseau entrantes sur le socket 0.0.0.0:3306/TCP, exécutez la commande ci-dessous pour forcer le service pour se lier à l'interface loopback et interdire complètement l'accès à distance. Ensuite, redémarrez le service MySQL pour appliquer la nouvelle configuration.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart

Vérifiez si la liaison localhost a été appliquée avec succès en exécutant la commande netstat comme indiqué dans l'exemple ci-dessous.

netstat -an -p tcp

C'est tout! Vous avez installé avec succès le serveur Web Nginx, la base de données relationnelle MariaDB et le langage de programmation côté serveur PHP dans FreeBSD. Vous pouvez maintenant commencer à créer des pages Web dynamiques pour proposer du contenu Web à vos visiteurs.