Aller à la recherche

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

Nginx Php-fpm sous freebsd

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>

Nginx php-fpm site dynamique simplement

Voilà, nous avons notre site dynamique qui tourne.

La discussion continue ailleurs

URL de rétrolien : https://www.binsp.net/?trackback/23

Fil des commentaires de ce billet

Page top