KrISS feed 8.7 - A simple and smart (or stupid) feed reader. By Tontof
  • Sunday 22 February 2015 - 16:29

    Cela fait maintenant quelques mois que je n'ai pas édité de nouveau billet sur ce site, je vais donc couper cette période creuse en vous proposant un petit tutoriel sur la mise en place de php5-fpm avec apache2 et tout ça configurable au besoin dans des virtualhost .

    Nous avons déjà vu comment faire avec Nginx ( qui est franchement plus clair qu'apache ) mais parfois on a pas le choix du serveur web sur lequel on travail .. alors voyons comment faire ça proprement avec apache2.

    Etat des lieux

    Le tutoriel se base sur la version stable de Débian du moment, Debian 7 "Wheezy" .
    Nous allons également activer les dépôts contrib et non-free pour installer ce qui va suivre .

    Pour cela commencez par éditer le fichier /etc/apt/sources.list

    sudo vim /etc/apt/sources.list
    

    Et ajoutez à la fin de chaque ligne contrib non-free
    Ce qui donne quelque chose comme çà

    deb http://cloudfront.debian.net/debian wheezy main contrib non-free
    deb-src http://cloudfront.debian.net/debian wheezy main contrib non-free
    deb http://security.debian.org/ wheezy/updates main contrib non-free
    deb-src http://security.debian.org/ wheezy/updates main contrib non-free
    deb http://cloudfront.debian.net/debian wheezy-updates main contrib non-free
    deb-src http://cloudfront.debian.net/debian wheezy-updates main contrib non-free
    

    PS: ne faite pas attention à l'url de mes dépôts ci-dessus "cloudfront.debian.net" , j'utilise une instance (VM) Amazon pour réaliser mes tests .

    Installation des paquets nécessaires

    Nous allons installer les paquets suivants :

    sudo apt-get install php5-fpm libapache2-mod-fastcgi php5-cgi
    

    Puis il nous faut activer le module fastcgi et actions via la commande a2enmod

    sudo a2enmod actions fastcgi
    

    Configuration du module fastcgi

    Il nous faut lier le module fastcgi aux processus php5-fpm, pour celà nous allons éditer le fichier de configuration du module fastcgi

    vim /etc/apache2/mods-available/fastcgi.conf
    

    Pour arriver à ce résultat

    <IfModule mod_fastcgi.c>
     AddType application/x-httpd-fastphp5 .php
     Action application/x-httpd-fastphp5 /php5-fcgi
     Alias /php5-fcgi /usr/bin/php5-fcgi
     FastCgiExternalServer /usr/bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
    </IfModule>
    

    NB : il vous faut vérifier le chemin du socket php5-fpm dans votre cas, normalement, /var/run/php5-fpm.sock et la valeur par défaut pour l’environnement Débian 7, pour vérifier exécuter cette commande

    cat /etc/php5/fpm/pool.d/www.conf | grep "listen = "
    

    Le test

    Il ne vous reste plus qu'à tester cette nouvelle configuration, commençons par tester l'ensemble des paramètres d'apache via la commande très pratique

    sudo apache2ctl configtest
    

    Puis il ne reste plus qu'à relancer Apache si tout est ok

    sudo service apache2 restart
    

    Enfin, nous allons mettre un simple fichier php dans le DocumentRoot par défaut d'apache2

    sudo echo "<?php echo phpinfo();" > /var/www/lindev.php && chown www-data:www-data /var/www/lindev.php
    

    Il ne vous reste plus qu'à entrer l'url http://localhost/lindev.php pour voir le résultat .

    Conf spécifique par virtualhost

    Jusque là, les scripts php sont exécutés par l'utilisateur système www-data dans la plupart des cas, cela va être adéquat, mais si pour une raison quelconque vous devez utiliser un autre utilisateur pour exécuter un script/site en particulier, dans le virtualhost correspondant, il vous faudra surcharger la configuration du module fastcgi, ce qui donnera par exemple

    <VirtualHost *:80>
        ServerAdmin webmaster@lindev.fr
        ServerName lindev.fr
        ServerAlias www.lindev.fr
        DocumentRoot /var/www/lindev/
        ErrorLog /var/www/lindev/error.log
        CustomLog /var/www/lindev/access.log combined
    
        <IfModule mod_fastcgi.c>
            AddType application/x-httpd-fastphp5 .php
            Action application/x-httpd-fastphp5 /php5-fcgi
            Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi_lindev
            FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi_lindev -socket /var/run/php5-fpm_lindev.sock -pass-header Authorization
        </IfModule>
    
    </VirtualHost>
    

    Ici , j'ai donc donné un autre socket à utiliser, que j'ai nommé php5-fpm_lindev.sock. Ce socket devra bien évidement être configuré coté php-fpm, en créant un nouveau pool ( dans un prochain article certainement ), en attendant, pour tester copiez juste la conf du pool par défaut, et changer le paramètre listen pour spécifier le socket à créer pour ce pool.
    C'est également dans ce fichier de pool que vous pourrez spécifier l'utilisateur système à utiliser pour interpréter les fichiers php.

    cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/lindev.conf
    

    Changer les paramètres listen, user et group , puis relancer php-fpm

    sudo service php5-fpm reload
    

    L'article touche maintenant à sa fin, vous savez maintenant installer apache, php5-fpm et configurer un pool spécifique de php pour un virtualhost.

    Ch.