Créer un site avec PluXml et Nginx

Rédigé par O. Clotaire Aucun commentaire Fil RSS des articles
Classé dans : Linux, Raspberry Pi, PluXml, Web Mots clés : Linux, PluXml, Nginx, Web, blog, CMS, php

Vous avez pu lire l'article vous permettant de créer un site avec PluXml et Apache, mais préférez-vous utiliser ou tester Nginx.

Le serveur Apache est souvent choisi par les administrateurs car il est puissant, extensible et peut interpréter un grand nombre de langages. Il gère les contenus dynamiques en mode natif.

Nginx, en plus de surmonter le nombre de connexion simultanées, est légé, adapté aux machines ayant des ressousrces matériel minimum, et il est réactif en charge. Il ne gère pas les contenus dynamiques en mode natif. Pour le PHP, il faut le configurer.

Entre ces deux serveur Web puissant, Nginx sera le plus légé pour un petit ordinateur comme un Raspberry Pi.

Pré-requis :

Cette fois ci, pour le fonctionnement de PluXml, nous avons fait le choix du serveur Web Nginx, de PHP5-FPM pour la communication du serveur Web avec PHP5 et de PHP5-GD pour la gestion des images.

Nous allons l'installer sur un ordinateur miniature, la Raspberry Pi pour la distribution Rasbian. Cela vous permettra d'avoir votre site Web chez vous pour un faible coût.


Installation :


1- Installer un serveur web de type LAMP (Linux - Apache (Nginx) - MySQL - PHP) :

L'installation de la base de donnée MySQL n'est pas nécessaire.
Comme serveur Web, nous avons vu Apache et maintenant nous installerons Nginx :
$ sudo add-apt-repository ppa:nginx/stable
$ sudo apt-get update
$ sudo apt-get install nginx-full php5 php5-gd php5-fpm

Démarrer le service Nginx :
$ sudo service nginx start


2- Vérifier que Nginx fonctionne :

Lancer le test de configuration :
$ sudo service nginx configtest
Testing nginx configuration: nginx.

Nous allons aussi vérifier que Nginx fonctionne correctement en nous rendant sur l’adresse de votre serveur Web, la Raspberry Pi.

Pour ce faire, taper votre adresse local dans votre navigateur à partir de cette machine :
http://localhost

Vous devriez alors obtenir une page avec le message Welcome to nginx! Votre serveur Web Nginx fonctionne.

Arrêter le serveur Web :
$ sudo service nginx stop

3- Vérifier que PHP fonctionne :

Supprimer le fichier index.html dans le répertoire /var/www/html/ :
$ rm /var/www/html/index.html

Si il n'existe pas, créez le fichier index.php qui servira à la vérification :
$ echo "<?php phpinfo(); ?>" > /var/www/html/index.php

Cette commande permet l'affichage des informations PHP lors de l'ouverture du fichier index.php du répertoire /var/www/html/. Vérifiez-le à votre adresse local :
http://127.0.0.1/

Normalement, si vous voyez PHP Version suivit du numéro de version, c’est que PHP fonctionne.

PHP 7.0 dans l'exemple. 

 

Configuration :

1- Description de Nginx :

  • /etc/nginx/ : dossier contenant les fichiers de configuration de Nginx
  • sites-available/: dossier contenant la liste des fichiers de configuration des sites disponibles
  • sites-enabled/: dossier contenant la liste des fichiers de configuration des sites actifs
  • nginx.conf: le fichier de configuration principal
  • conf.d/: dossier contenant des fichiers de configuration supplémentaires


2- Configuration de Nginx pour PHP :


Nous allons autoriser Nginx à diffuser du contenu en utilisant PHP :
$
sudo nano /etc/nginx/sites-available/default

Chercher les lignes pour les décommenter (supprimer #) :
#listen   80; ## listen for ipv4; this line is default and implied
#listen   [::]:80 default ipv6only=on; ## listen for ipv6
Cela afin de permettre à Nginx d'écouter sur le port 80 (http) les requêtes IPv4 et IPv6.

Modifier la liste d'index, afin de prioriser les pages en *.php par :
root /var/www/votresite;
index index.php index.html index.htm;

... Le contenu de ce fichier de configuration avec prise en compte des variables .htaccess, du mod_rewrite pour PHP et FastCGI doit se rapprocher de cette configuration :

server {
    listen   80; ## listen for ipv4; this line is default and implied
    listen   [::]:80 default ipv6only=on; ## listen for ipv6

    root /var/www/votresite;
    # Pour la gérer les erreurs par les logs :
    # error_log /var/www/votresite/logs/error.log;
# Prioriser l'indexation php :

    index index.php index.html index.htm;

    ###################################################
    # Rendre le site accessible depuis http://localhost/
    server_name localhost;

    # Cacher le fichier version :
    location /version {
         return 404;
    }

    # Ligne très importante pour éviter le vol de mot de passe
    location /data/configuration/users.xml {
         return 403;
    }

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to index.html
        # try_files $uri $uri/ /index.html;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        ## NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
 
        ## With php5-cgi alone:
        # fastcgi_pass 127.0.0.1:9000;
 
        ## With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ /\. {
        deny all;
    }

    location ~* /(?:uploads|files)/.*\.php$ {
        deny all;
    }

}


Afin de rendre votre site accéssible depuis l'extérieur, modifiez dans /etc/nginx/sites-available/default :
server_name votresite.fr;

Modifier le fichier php.ini comme demandé dans /etc/nginx/sites-available/default :
$ sudo nano /etc/php5/fpm/php.ini

Pour une configuration sécurisé de PHP, supprimer le point-virgule et en modifier la valeur de 1 à 0 :
cgi.fix_pathinfo=0

Démarrer Nginx et redémarrer php5-fpm :
$ sudo service php5-fpm reload && sudo service nginx start

Tapez l'adresse de votre site dans votre navigateur pour configurer PluXml si vous l'avez déjà installé :
http://localhost/install.php

Sinon, c'est le moment de d'installer et de configurer votre PluXml dans cet article.

Amusez-vous bien !

 

Remarque :

1- Le mod-rewrite d'URL pour Nginx : 

Ce mode est a configurer pour ce serveur Web dans le fichier de configuration :
$ sudo nano /etc/nginx/sites-available/default

    # Définir les règles d'URL Rewriting :  
 }
  location / {
  rewrite api/v0(.*)$ /api_v0.php/$1 last;
  rewrite ^(.+)$ /index.php/$1 last;
 }

Via l'administration de PluXML, activez l'URL Rewriting dans le menu Paramètres/Configuration avancée, Vous verrez les liens de votre site n'affiche plus certains caractères http://localhost/index.php?article16/creer-un-site-avec-pluxml-configuration mais sont plus compréhensibles http://localhost/creer-un-site-avec-pluxml-configuration

 

Merci websetnet et au site du comparatif Apache vs Nginx !

A PROPOS

  • Grace à mon expérience dans les Systèmes d'Information, j'ai le privilège de partager mon expérience en les centralisant sous la forme d’une base de connaissance.
  • Parfois certaines de nos questions ne trouvent pas toujours de réponse. Le domaine de l’informatique évolue rapidement, il est alors important de pouvoir profiter des solutions déjà expérimentés.
  • Ce site sera de plus en plus accessible.
  • Je vous remercie d’avance pour vos éventuelles remarques constructives permettant son amélioration.

Écrire un commentaire

 Se rappeler de moi sur ce site
Quelle est la deuxième lettre du mot uzfs ?

Fil RSS des commentaires de cet article

↓