Nginx et PHP7.0 sous FreeBSD
But de ce billet
- Installation nginx sous FreeBSD
- Mise en place d'un hôte virtuel
- Mise en place d'un site (example.com) avec php-fpm
Installation nginx php-fpm sous FreeBSD
Nous allons installer nginx grâce aux sources et sélectionner que les modules qui nous intéresse.
cd /usr/ports/www/nginx
make install
Voilà les modules que l'on va activer
DSO=on: HTTP=on: Enable HTTP module HTTP_GZIP_STATIC=on: HTTP_REWRITE=on
Nginx ajout d'un hôte virtuel
Tout d'abord nous créons notre dossier qui va recevoir notre site
mkdir /srv/www/example.com/nginx/htdocs
Nous créons ensuite un répertoire où l'on va mettre la configuration de notre site
mkdir /usr/local/etc/nginx/site
Nous demandons à nginx d'inclure le fichier de configuration de notre site (fichier /usr/local/etc/nginx/nginx.conf)
#inclusion des hôtes virtuels include /usr/local/etc/nginx/sites/*
Puis nous créons notre fichier de configuration
cd /usr/local/etc/nginx/sites/
#Fichier /usr/local/etc/nginx/site/example.com server { listen 192.168.100.80:80; server_name www.example.com example.com; # location / { root /srv/www/example.com/nginx/htdocs; index index.html; } }
Ajoutons ce qu'il faut pour que le serveur puisse être lancé au démarrage.
echo 'nginx_enable="YES"' >> /etc/rc.conf
On démarre nginx
service nginx start
Ajoutons dans notre /etc/hosts coté client la ligne suivant afin de pouvoir accéder à notre serveur
192.168.100.80 www.example.com
Installation de php-fpm
cd /usr/port/lang/php70
make config install
FPM=on: Build FPM version ZTS=on: Force Zend Thread Safety (ZTS) build
Configurons php-fpm afin qu'il écoute sur un socket unix et non en TCP/IP
#Fichier /usr/local/etc/php-fpm.d/www.conf listen=/var/run/php-fpm.sock ... #Nous devons aussi dé-commenter les lignes suivantes pour que le fichier socket soit crée avec les bons droits (www) listen.owner = www listen.group = www listen.mode = 0660 Si nous démarrons php-fpm, nous devons voir le socket unix se créer dans /var/run @@echo 'php_fpm_enable="YES" ' >> /etc/rc.conf@@ @@service php-fpm start@@ @@ls -l /var/run@@ @@srw-rw---- 1 www www 0 Jan 3 00:28 php-fpm.sock=@@ Nous allons maintenant modifier le fichier /usr/local/etc/nginx/sites/example.com afin de dynamiser nginx avec php
location ~ \.php$ {
root /srv/www/example.com/nginx/htdocs;
# Si le fichier n'existe pas en renvoi l'erreur 404 try_files $uri =404;
# on transmet au socket unix fastcgi_pass unix:/var/run/php-fpm.sock;
# On inclus quelques variables du fichier à la racine du serveur nginx
include fastcgi_params;
# on modifie légèrement la variable SCRIPT_FILENAME
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
///
On va maintenant créer un fichier contenant du php à interpréter
@cat > /srv/www/example.com/nginx/htdocs/index.php <<<EOF@@
<html>
<body>
<?php echo 'It words nginx with php' ; ?>
</body>
</html>
Voilà, nous avons notre site dynamique qui tourne.