Recherche de site Web

Installer Nginx, MariaDB et PHP sur FreeBSD 10.2


Dans notre tutoriel précédent, nous avons décrit comment configurer la pile FAMP dans FreeBSD.

  • Installer la pile Apache, MariaDB et PHP (FAMP) sur FreeBSD 10.2

Maintenant, nous allons vous montrer comment installer la pile Nginx, MariaDB et PHP (FEMP) sur un serveur FreeBSD 10.2.

Comme vous le savez probablement, FEMP est l'acronyme de FreeBSD, Nginx (engine x), MariaDB/MySQL, et PHP.

Pour le but de ce tutoriel, j'utiliserai la machine de test suivante.

  • Système d'exploitation : FreeBSD 10.2 système 64 bits
  • Nom d'hôte : freebsd.ostechnix.local
  • Adresse IP : 192.168.1.103/24

Eh bien, maintenant commençons à déployer la pile FAMP sur FreeBSD 10.2.

1. Mettez à jour votre FreeBSD

Comme tout autre système d'exploitation, nous devons mettre à jour FreeBSD avant d'installer un logiciel. Pour ce faire, passez à l'utilisateur root :

$ su

Et exécutez les commandes suivantes une par une pour mettre à jour votre serveur FreeBSD :

# freebsd-update fetch install

2. Installer Nginx

Installez le serveur web Nginx en utilisant la commande :

# pkg install nginx

Configurer Nginx

Le fichier de configuration par défaut de Nginx est /usr/local/etc/nginx/nginx.conf.

Faisons d'abord une sauvegarde du fichier de configuration, au cas où quelque chose tournerait mal, nous pourrons facilement restaurer à partir de la sauvegarde.

Pour ce faire, exécutez :

mv /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/nginx.conf.bak

Ensuite, créez un nouveau fichier de configuration Nginx :

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

Ajoutez les lignes suivantes :

user www;
worker_processes  1;
error_log /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log /var/log/nginx/access.log;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  ostechnix.local www.ostechnix.local;
        root /usr/local/www/nginx;
        index index.php index.html index.htm;

        location / {
            try_files $uri $uri/ =404;
        }

        error_page      500 502 503 504  /50x.html;
        location = /50x.html {
            root /usr/local/www/nginx-dist;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                include fastcgi_params;
        }
    }
}

Remplacez la directive server_name (ostechnix.local) par la vôtre. Enregistrez et fermez le fichier.

Ensuite, créez les fichiers journaux nécessaires. Ces fichiers journaux seront utiles pour tout dépannage et analyse des erreurs à l'avenir.

# mkdir -p /var/log/nginx
# touch /var/log/nginx/access.log
# touch /var/log/nginx/error.log

Ensuite, nous devons configurer le répertoire racine web correct. Par défaut, le répertoire racine web est /usr/local/www/nginx, cependant il s'agit seulement d'un lien symbolique vers le répertoire “nginx-dist”.

Nous devrions supprimer ce lien et le diriger vers l'emplacement correct.

Alors, supprimons le répertoire racine du web avec la commande :

# rm -rf /usr/local/www/nginx

Puis recréez le répertoire racine du web avec la commande :

# mkdir /usr/local/www/nginx

Ensuite, nous devrions copier le fichier index.html dans le répertoire racine du web, car il a été supprimé lors de la suppression du répertoire racine du web à l'étape précédente.

# cp /usr/local/www/nginx-dist/index.html /usr/local/www/nginx

Testez que le fichier de configuration nginx est correct avec la commande :

# nginx -t

Exemple de sortie :

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

Enfin, nous devons activer et démarrer le service Nginx. Pour ce faire, exécutez :

# sysrc nginx_enable=yes
# service nginx start

Test Nginx

Ouvrez votre navigateur web et allez à : http://IP-address/ ou http://localhost. Vous verrez la page de test Nginx suivante.

Félicitations ! L'installation du serveur web Nginx a réussi et il fonctionne bien.

Ensuite, nous devons installer MariaDB.

3. Installer MariaDB

MariaDB est un remplacement direct de MySQL. Pour installer MariaDB, exécutez :

# pkg install mariadb100-server

Ensuite, copiez le fichier de configuration de MariaDB depuis le répertoire ‘/usr/local/share/mysql/’ vers ‘/usr/local/etc/’ comme indiqué ci-dessous.

# cp /usr/local/share/mysql/my-medium.cnf /usr/local/etc/my.cnf

Ensuite, activez et démarrez le service MariaDB en utilisant les commandes :

# sysrc mysql_enable=yes
# service mysql-server start
Configurer le mot de passe de l'utilisateur root de MariaDB

Comme vous le savez probablement, l'utilisateur root de MariaDB a un mot de passe vide, ce qui n'est pas recommandé, au moment de l'installation. Donc, pour sécuriser l'utilisateur root de MariaDB, il est obligatoire de configurer un mot de passe fort pour l'utilisateur root. Pour ce faire, exécutez :

# mysql_secure_installation

Lorsque l'invite “Entrez le mot de passe actuel pour root ” apparaît, appuyez simplement sur la touche ENTER et définissez le mot de passe deux fois. Ensuite, appuyez simplement sur Y pour accepter les valeurs par défaut.

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): ## Press Enter
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] ## Press Enter

New password: ## Enter password
Re-enter new password: ## Re-enter 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] ## Press Enter
 ... 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] ## Press Enter
 ... 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] ## Press Enter
 - 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] ## Press Enter
 ... 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!

Voilà. MariaDB est maintenant installé et sécurisé. Passons à l'installation de PHP.

4. Installer PHP

Pour installer PHP, exécutez :

# pkg install php56-mysql php56-mysqli

Après avoir installé PHP, copiez le fichier de configuration PHP exemple /usr/local/etc/php.ini-production dans le répertoire /usr/local/etc/ comme indiqué ci-dessous.

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

Si vous effectuez des modifications, vous devez mettre à jour les modifications en utilisant la commande :

# rehash

Maintenant, nous devons configurer PHP avec le serveur web Nginx.

Configurer PHP avec le serveur web Nginx

Modifier le fichier /usr/local/etc/php-fpm.conf :

# nano /usr/local/etc/php-fpm.conf

Trouvez la ligne suivante :

listen = 127.0.0.1:9000

Et remplacez-le par :

listen = /var/run/php-fpm.sock

Ensuite, trouvez les lignes suivantes et décommentez-les.

listen.owner = www
listen.group = www
listen.mode = 0660

Enregistrez et fermez le fichier.

Test PHP

Créez un fichier PHP exemple dans le répertoire racine du web :

# nano /usr/local/www/nginx/test.php

Ajoutez la ligne suivante :

<?php phpinfo(); ?>

Enregistrez et fermez le fichier.

Ensuite, activez et démarrez le service PHP-FPM avec les commandes suivantes :

# sysrc php_fpm_enable=yes
# service php-fpm start

Enfin, redémarrez le service nginx en utilisant la commande :

# service nginx restart

Maintenant, ouvrez votre navigateur web et allez à : http://IP-Address/info.php

Vous devriez voir la page de test PHP suivante.

Installer des modules PHP

Nous devons installer des modules PHP (extensions) pour améliorer les fonctionnalités de PHP. Cela est optionnel, vous pouvez passer cette étape si vous n'avez pas besoin d'installer des extensions.

Pour afficher la liste des modules disponibles, il suffit de lancer :

# pkg search php56

Vous pouvez vérifier ce que fait chaque module à partir de la section des commentaires dans la sortie ci-dessus, ou simplement exécuter la commande suivante

# pkg search -f php56-curl

Exemple de sortie :

php56-curl-5.6.18
Name : php56-curl
Version : 5.6.18
Origin : ftp/php56-curl
Architecture : freebsd:10:x86:64
Prefix : /usr/local
Repository : FreeBSD [pkg+http://pkg.FreeBSD.org/FreeBSD:10:amd64/quarterly]
Categories : ftp
Licenses : PHP301
Maintainer : ale@FreeBSD.org
WWW : http://www.php.net/
Comment : The curl shared extension for php
[...]

Pour installer une extension PHP, par exemple php56-curl-5.6.18, exécutez :

# pkg install php56-curl

Félicitations ! À ce stade, la pile FEMP est prête à héberger vos sites web ou toute application web.

C'est tout pour le moment. Merci d'avoir lu ce tutoriel. Si vous avez des questions, n'hésitez pas à les poser dans la section des commentaires ci-dessous. Nous les résoudrons dès que possible.

Si vous trouvez ce tutoriel utile, veuillez le partager sur vos réseaux sociaux et soutenir OSTechNix.

Santé !