Instalar php 7 FPM en Centos7 y ispconfg 3.x

¿En qué podemos ayudarte?
< Regresar
Estás aquí:
Imprimir

Prepara el servidor

yum update

Instala el repositorio remi si no esta instalado

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Listar los repositorios de yum para ver las versiones de php disponbles

ls -alFr /etc/yum.repos.d

Habilita el  repositorio de php 7.2

Nano /etc/yum.repos.d/remi-php72.repo
enabled=1
ó
yum-config-manager --enable remi-php72 (si no jala este comando instalar yum-utils)

Actualiza y checa la versión de php en el server

yum update (para las dependencias se recomienda también tener el repositorio epel instalado y habilitado) (ejemplo yum update –enablerepo=remi,epel)

yum info php

yum info php-fpm

Instala php fpm

yum install php-fpm php-gd php-pdo php-mbstring php-pear -y (puede ser que ya esten instalados)

habilita php fpm

systemctl enable php-fpm

inicia php-fpm

systemctl start php-fpm

hacer pruebas de phpinfo en el sitio ya debe estar jalando el fpm en el archivo de salida de phpinfo

NOTA los siguientes pasos aplican si hay mas de una versión instalada de php y se quiere agregar al ispconfig 3.1

Ver configuracion php fpm

1.      nano /etc/php-fpm.d/www.conf (si no esta en esta ruta buscarlo con el find)

a.       revisar que puerto tiene el parámetro listen (ejemplo 9006)

2.      Conectarse al ispconfig e ir a la sección de system->additional php
a.       Agregar php versión
b.      Poner el nombre de la versión
3.      Cambiarse a la pestaña de FastCGI Settings
       i.      Path to the PHP FastCGI binary: /opt/remi/php73/root/usr/bin/php-cgi (si no esta en esta ruta buscarlo con find, recordar que es el archivo de la versión de php nueva, no la default)
      ii.      Path to the php.ini directory:  /etc/opt/remi/php73/ (igual cambiar de acuerdo a la versión)
4.      Cambiarse a PHP-FPM Settings
  1. Path to the PHP-FPM init script :/etc/opt/remi/php73
  2. Path to the php.ini directory : /etc/opt/remi/php73
  3. Path to the PHP-FPM pool directory : /etc/opt/remi/php73/php-fpm.d
d.      Poner los paths correctos a la nueva versión, buscar con find / -name *fpm* por ejemplo para encontrar las rutas
5.      Salvar, si ha mas versiones agregarlas de la misma forma

Si por alguna razon el apahe no interpreta el php realizar lo siguiente:

Valida que estos paquetes esten instalados 
rpm -qa|grep httpd
rpm -qa|grep httpd-tools
rpm -qa|grep mod_ssl

Verifica la existencia de estas lineas

nano /etc/httpd/conf.modules.d/00-mpm.conf  # LoadModule mpm_prefork_module modules/mod_mpm_prefork.so LoadModule mpm_worker_module #modules/mod_mpm_worker.so (habilitar este y comentar el otro si se manejan 

Diferentes pools de php-fpm
Para casos donde solo exista un solo website en el server se aconseja que se use el php-fpm de manera de socket y no como conexion tcp, se usa como tcp  cuando se quiere tener separado el frontend de la parte del php.

Como socket en un solo server
Se le dice apache que todos los request de php van por php-fpm
 
nano  /etc/httpd/conf.d/php.conf  
# Proxy declaration
<Proxy "unix:/var/run/php-fpm/default.sock|fcgi://php-fpm">
# we must declare a parameter in here (doesn't matter which) or it'll not register the proxy ahead of time
ProxySet disablereuse=off
</Proxy>
# Redirect to the proxy
<FilesMatch \.php$>
SetHandler proxy:fcgi://php-fpm
</FilesMatch>


Edita el php-fpm para usar como socket
nano /etc/php-fpm.d/www.conf
; listen = 127.0.0.1:9000
listen = /var/run/php-fpm/default.sock
...
listen.allowed_clients = 127.0.0.1
listen.owner = apache
listen.group = apache
listen.mode = 0660
user = apache
group = apache

Reiniciar servicios

systemctl restart php-fpm
systemctl start httpd

Multiples PHP-FPM pools para que cada virtual host tenga su propio pool en el mismo server (tiene mejor rendimiento por ocket que pot tcp)

Deshabilitar el php a nivel global del apache

mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.bak
se crea un archivo  de conf para el sitio virtual
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/example.com.conf 
nano /etc/php-fpm.d/example.com.conf 
listen = /var/run/php-fpm/example.com.sock

Editar el conf del virtual host y agregar las siguientes lineas tanto para el puerto 80 como para el 443 si es que aplica

nano /etc/httpd/conf/sites-available/ example.com.conf
# Proxy declaration         
<Proxy "unix:/var/run/php-fpm/example.com.sock|fcgi://php-fpm">                 # we must declare a parameter in here (doesn't matter which) or it'll not register the proxy ahead of time                 
ProxySet disablereuse=off                 
# Note: If you configure php-fpm to use the "ondemand" process manager, then use "ProxySet disablereuse=on"         
</Proxy>         
# Redirect to the proxy         
<FilesMatch \.php$>                 
SetHandler proxy:fcgi://php-fpm         
</FilesMatch> 

systemctl restart php-fpm
systemctl start httpd 
Table of Contents

Deja un comentario