Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

Lunaa

 tutoriel Installer et configurer son serveur nginx sur FreeBSD

Messages recommandés

Posté(e) (modifié)

 

Niveau requis Débutant

Temps estimé : Entre 10 et 15 minutes

 

Bonjour.

 

Je vais dans ce tutoriel m’efforcer de vous apprendre à configurer un serveur web de A à Z sur votre machine FreeBSD.


Notez que dans ce tutoriel, vous apprendrez à installer un serveur nginx et non Apache. Certains sites ne fonctionneront pas avec nginx s’ils ont été fait pour Apache, et inversement.

 

Introduction :

Tout d’abord, il semble essentielle de comprendre pourquoi je désire vous faire installer nginx et non Apache;

 

Au niveau de la rapidité de PHP, aucune différence, les deux sont vitesses sont estimées à 108 requêtes par seconde. Cependant, nginx se démarque au niveau de la rapidité quand votre serveur reçoit un nombre de connexion plus importante. Sa vitesse dans ces cas est estimée à 2.5 fois supérieur à celle d’Apache, un écart non négligeable. Il en découle qu’une petite attaque Ddos se sentira moins au niveau des performances sur un serveur nginx. De plus ngninx consomme environ 4% de mémoire de moins qu’Apache pour un benchmark de 500 connexions.

 

Nginx se démarque par sa flexibilité et sa capacité à effectuer un site dynamique avancé comme un reverse proxy etc....

 

 

I. Installation de nginx

Révélation

 

A. Installation de nginx

Révélation

 

Pour commencer, vous vous en doutez sûrement, nous allons commencer par télécharger nginx. Sur FreeBSD, nous appelons ça un package. Pour cela, tapez dans votre console :


pkg install nginx

Ensuite, pour que FreeBSD relise la liste des fichiers dans les chemins d'accès par défaut, de façon à ce qu'il sache ce qui s'y trouve nous allons taper :


rehash

Patientez le temps que la machine fasse ce qu’elle a à faire, puis maintenant nous allons devoir initialiser le service nginx, pour que vous puissiez le démarrer plus tard avec une certaine aisance. Pour cela nous devons récupérer le nom du service qui se trouve dans le rc.d, tapez :


grep rcvar /usr/local/etc/rc.d/*

Dans le retour de la commande, vous devriez apercevoir votre service nginx :


/usr/local/etc/rc.d/nginx:rcvar=nginx_enable
Info : Si vous ne trouvez pas cette ligne, cherchez une ligne qui pourrait correspondre, peut être que les nouvelles versions de nginx la feront varier.

Bien, nous allons maintenant devoir activer ce service. Vous avez deux manières de faire, soit vous utilisez un programme tel que WinSCP pour aller éditer le fichier, soit vous utilisez l’éditeur par défaut :


ee /etc/rc.conf

Ajoutez la ligne :


nginx_enable="YES"

 

 

 

 

Vous pouvez d'ores et déjà démarrer nginx avec : service nginx start et vous rendre sur votre serveur WEB.
Info : Votre serveur ne contient pas d'interpréteur PHP, vous ne pouvez donc pour le moment que faire des sites statiques.

 

B. Configuration de nginx

Révélation

Pour cela, nous allons utiliser le fichier de paramétrage de nignx se trouvant ici :


ee /usr/local/etc/nginx/nginx.conf
Info : Vous pouvez à tout moment récupérer la configuration par défaut en copiant le fichier par défaut avec la commande :

cp /usr/local/etc/nginx/nginx.conf-dist /usr/local/etc/nginx/nginx.conf

 

Pour le moment, nous ne feront que peu de changements.

Changez la ligne #user nobody; en :


user  www;

Puis le nombre de worker en automatique :


worker_processes  auto;
Info : Vous pouvez définir un nombre précis de worker.
Attention ! Si vous mettez un nombre de worker trop grande, nginx pourra consommer entièrement les capacités de votre machine !

 

Vous changerez aussi la ligne correspondante en fichier d'erreur, comme ceci (retirer le # devant):


error_log  /var/log/nginx/error.log;
Info : Vous pourrez maintenant retrouver les erreurs de nginx dans ce fichier.

Vous pouvez par la suite vérifier la syntaxe du fichier de configuration :


nginx -t

Si elle est bonne, je vous invite à reload nginx avec la commande :


service nginx reload
Félicitations ! Votre nginx est maintenant opérationnel et configuré !

 

Vous aurez accès à ces quatre commandes de service :

  • service nginx reload
  • service nginx restart
  • service nginx stop
  • service nginx start

 

 

Info : Votre nginx démarrera tout seul en même temps que votre machine
Attention ! En cas de lourds changements, il est conseillé de restart le service et de ne pas juste le reload.

 

 

 

II. Installation de PHP

Révélation

 

A. Installation de PHP

Révélation

Comme pour nginx, nous allons devoir installer le package, tapez (installons les modules principaux avec) :


pkg install php70 php70-mysqli php70-xml  php70-gd php70-curl php70-zlib php70-zip php70-hash php70-tokenizer

Puis, pour les mêmes raisons qu'avant :


rehash

Ajoutez ensuite dans le même fichier rc.conf que précédemment :


php_fpm_enable="YES"
Succès ! PHP est correctement installé, nous devons maintenant le configurer afin qu'il fonctionne correctement avec nginx !

 

 

B. Configuration de PHP

Révélation

Maintenant, passons à sa configuration :

Tout va se passer dans la même direction, allons donc directement dans celle-ci :


cd /usr/local/etc

Configurons php-fpm :


vi php-fpm.d/www.conf

Vous trouverez :


listen = 127.0.0.1:9000

Changez en :


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

Puis retirez les points virgules devant ces lignes :


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

Nous pouvons passer à la configuration de php. Copiez pour débuter la configuration :


cp php.ini-production php.ini

Puis, éditons la :


vi php.ini

Nous ne changerons qu'un paramètre :


cgi.fix_pathinfo=0

Maintenant, il faut dire à nginx comment traiter les fichiers PHP. Pour cela on va modifier la configuration de notre server virtuelle et rajouter un filtre pour les fichier finissant par l'extension php. Rendez vous encore une fois dans la configuration de nginx :

Changez :


index index.html index.htm;

en :


index  index.php index.html index.htm;

Ici, nous venons de dire à nginx, "tu prends en priorité l'index.php".

Trouvez ensuite le bloc qui ressemble à celui-ci et modifiez le comme cela :


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

Voici l'intégralité de mon fichier nginx.conf une fois modifié à ma façon, si vous le voulez :


user  www;
worker_processes  auto;
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  example.com www.example.com;
        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;
        }
    }
}

 

 

Vous devez maintenant redémarrer les services :

service php-fpm restart

Et nginx :

service nginx restart

Vous pouvez maintenant vous rendre sur votre site WEB, il est configuré et supporte dès maintenant PHP7 ! 

Info. Vous pouvez modifier les fichiers de votre serveur web à l'adresse : /usr/local/www/nginx-dist/index.php
Succès ! Votre serveur WEB est installé !

 

 

 

III. Installation de Mysql

Révélation

Cette partie s'adresse à ceux voulant installer Mysql en même temps. Si vous l'avez déjà, vous pouvez quitter ce tutoriel.

Commencez par installer mysql par package comme d'habitude :

pkg install mysql57-server

Comme d'habitude :

rehash

Ajoutez par la suite à votre rc.conf :

mysql_enable="YES"

Configurons ensuite mysql. Démarrez le :

service mysql-server start

Ensuite, procédons à l'installation :

sudo mysql_secure_installation

Je vous laisse remplir le script, il suffit de lire et de compléter. Utilisez "ENTER" pour passer à l'étape suivante.

 

Il ne vous reste plus qu'à redémarrer mysql avec la commande :

service mysql-server restart

 

 

Succès ! Votre serveur WEB est maintenant totalement opérationnel !

 

 

 

Si vous avez des questions, je vous redirige vers l'A/Q/S.

 

Lunaa,

Modifié par Lunaa
correction

Partager ce message


Lien à poster
Partager sur d’autres sites

Oh, bien !

C'est le genre de tutoriel qu'il manquait dans la section administration systèmes !

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.