informatique:serveurs:installation-logiciels:php-fpm

Installation de Php-Fpm et PHP

Voir script dans /home/admin/script/nginx/ :

  • Passer en admin : su * admin
  • Se rendre dans le dossier des scripts : cd script/nginx/
  • Lancer le script : sh php_5.6.sh

Modifier les paramètres du fichier php.ini : vi /etc/php/5.6/php.ini

  • upload_max_filesize = 32M
  • post_max_size = 32M
  • short_open_tag = On
  • memory_limit = 512M
  • max_execution_time = 60
  • max_input_time = 60

Installation de paquets :

  • Supprimer le paquet : libcurl3-dev
  • remplacer libjpeg62-dev par libjpeg62-turbo-dev

Paramètre de ./configure :

  • remplacer --with-libdir=lib64 par --with-libdir=/lib/x86_64-linux-gnu
  • Utiliser le script /home/admin/script/divers/imagemagick_6.8.sh pour avoir la lib imagemagick dans le système.
  • Le script s'occupe de compiler l'extension pour PHP : 7.0, 7.1
; Ajout de l'extension imagick
; Elles sont cherchées par défaut dans : /lib64/extensions/no-debug-non-zts-xxx/
extension=imagick.so
 
; Activation de opcache
zend_extension=opcache.so
;opcache.memory_consumption=64  
;opcache.max_accelerated_files=2000

Voir ci-dessous les dossiers où les extensions sont stockées en fonction de la version de PHP.

  • php 7.0 : /lib64/extensions/no-debug-non-zts-20151012/
  • php 5.6 : /lib64/extensions/no-debug-non-zts-20131226/
  • php 5.5 : /lib64/extensions/no-debug-non-zts-20121212/
  • php 5.4 : /lib64/extensions/no-debug-non-zts-20100525/
  • Pour chaque domaine, se placer dans /home/utilisateur/www
  • Télécharger le fichier op.php : wget https://raw.github.com/amnuts/opcache-gui/master/index.php -O op.php
  • Le consulter à la page : http://mon_domaine/op.php
  • Avec systemd :
    • ln -s /home/admin/scripts/services/systemd/php-71-fpm.service /etc/systemd/system/php-71-fpm.service
    • chmod +x /etc/init.d/php-56-fpm
  • Avec system5 :
    • cp /home/admin/src/php-5.6.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-56-fpm
    • chmod +x /etc/init.d/php-56-fpm
  • Afin de permettre à admin d’accéder aux différentes versions de php-fpm, pour que l'on puisse accéder au status et ping, il est nécessaire de données les droits à admin sur les fichiers .sock. Pour ce faire, ajouter la ligne suivante dans /etc/init.d/php-56-fpm dans la section “start” après echo “done” :
# [2014-10-22] (jpm) : Changement des droits du .sock pour accéder au status et ping depuis admin
chown root:admin /var/run/php-56-fpm.sock
  • cp /etc/php/5.6/php-fpm.conf.default /etc/php/5.6/php-fpm.conf
  • Modifier le fichier /etc/php/5.6/php-fpm.conf :
    • Ligne 15 → décommenter : include=etc/fpm.d/*.conf
    • Ligne 32 → indiquer le chemin vers le fichier de log : error_log = /home/log/php-56-fpm.log
    • Ligne 164 → indiquer le socket unix : listen = /run/php-56-fpm.sock;
    • Ligne 176 → listen.owner = www-data
    • Ligne 177 → listen.group = www-data
    • Ligne 178 → listen.mode = 0660
    • Ligne 361 → pm.status_path = /php-56-fpm-status
    • Ligne 374 → ping.path = /php-56-fpm-ping
  • Créer le dossier contenant les fichiers ini de chaque site : mkdir /etc/php/5.6/fpm.d/
  • Démarrer php-fpm : service php-56-fpm start
  • Vérifier le status de php-fpm : netstat -tlnp |grep php-fpm
  • Ajouter des directives au niveau du fichier de configuration propre à la pool (cot cot).
    • Exemple pour apitest , fichier /etc/php/5.6/fpm.d/api-test.clapas.org.pool.conf
; Doc sur les paramètres : http://www.php.net/manual/fr/install.fpm.configuration.php
[apitest]
listen = /var/run/apitest_fpm.sock
listen.owner = apitest
listen.group = apitest
listen.mode = 0660
user = apitest
group = apitest
pm = dynamic
pm.max_children = 16
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 6
pm.max_requests = 1000
request_terminate_timeout = 3600s
chdir = /
php_admin_value[session.save_path] = "/home/apitest/_sessions"
php_admin_value[open_basedir] = "/lib/php:/home/apitest:/usr/share/pear:/usr/share/php:/tmp:/usr/local/lib/php:/home/apitest/www/images"
catch_workers_output = yes
  • Remplacer dans le fichier de config php-fpm du domaine concerné, les valeurs suivantes :
    • listen.owner = www-data
    • listen.group = www-data
    • listen.mode = 0660
  • Apparemment, il faut que listen.owner et listen.group aient la même valeur que l'utilisateur et le groupe de nginx (voir /etc/nginx/nginx.conf ).
  • informatique/serveurs/installation-logiciels/php-fpm.txt
  • Dernière modification : 2020/02/09 14:49
  • de jpmilcent