Apache y PHP en máquinas separadas
El propósito de esta entrada es explicar cómo montar un servidor Web Apache 2.4 y un servicio de PHP como lo es ‘php5-fpm’ en máquinas separadas. Una vez entendida la estructura el montaje es perfectamente extrapolable a, por ejemplo, NGINX (pronunciado: engine – x , motor – X).
No tengo como objetivo, ni mucho menos, explicar en qué consiste php, hay docenas de manuales al respecto, hago este pequeño manual porque después de mucho buscar no he encontrado un sitio dónde claramente se explique cómo hacerlo.
1. Descripción
Este es el esquema de montaje sobre el que se va a trabajar:
Pues sí, ese es el truco, para que ‘php5-fpm’ pueda funcionar es necesario que tenga acceso a los ficheros .php que se van a compilar (al menos yo no he encontrado otra forma de hacerlo).
2. Instalación y configuración
2.1. Almacenamiento compartido
Para el almacenamiento compartido usaré una cosa muy compleja de configurar y que me llevará mucho tiempo, NFS.
root@hlc-almacen:~# apt-get install nfs-kernel-server
Una vez instalado creo el directorio a compartir y lo añado al exports de NFS:
root@hlc-almacen:~# mkdir -p /var/www root@hlc-almacen:~# chown -R www-data. /var/www root@hlc-almacen:~# printf '/var/www\t*(rw,sync,no_subtree_check)\n' >> /etc/exports
Reinicio el servicio el servicio servidor de nfs (esto solo hace falta con el primer arranque de NFS) y actualizo las rutas compartidas:
root@hlc-almacen:~# systemctl restart nfs-kernel-server.service root@hlc-almacen:~# exportfs -rav
Una vez hecho esto monto, tanto en el servidor web como en el servidor del servicio php5-fpm, la carpeta del servidor de archivos.
Servidor web
root@web1:~# printf 'hlc-almacen:/var/www\t/var/www\tnfs\tdefaults,nofail,auto\t0\t0\n' >> /etc/fstab root@web1:~# mkdir -p /var/www root@web1:~# mount -a
Servidor php
root@phpserver1:~# printf 'hlc-almacen:/var/www\t/var/www\tnfs\tdefaults,nofail,auto\t0\t0\n' >> /etc/fstab root@phpserver1:~# mkdir -p /var/www root@phpserver1:~# mount -a
2.2. Servidor web
Para que nuestro servidor Apache2.4 funcione con php5-fpm es necesario instalar el módulo de Apache ‘libapache2-mod-fastcgi’ que se encuentra en el repo ‘non-free’ de Debian Jessie.
root@web2:~# apt-get install apache2 libapache2-mod-fastcgi
Una vez instalado creo la configuración del módulo en ‘/etc/apache2/conf-available/php5-fpm.conf’:
<IfModule mod_fastcgi.c> AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host phpserver1:9000 -pass-header Authorization <Directory /usr/lib/cgi-bin> Require all granted </Directory> </IfModule>
Ahí es donde se especifica la ip del servidor PHP. Esto también se puede hacer dentro del virtualhost.
Ahora se carga esta configuración creada y los módulos ‘actions’ y ‘fastcgi’:
root@web1:~# a2enmod fastcgi actions root@web1:~# a2enconf php5-fpm
Con esto queda configurado el servidor Apache.
2.3. Servidor PHP
El servidor php precisa menos configuración.
root@phpserver1:~# apt install php5 php5-fpm root@phpserver1:~# sed -ri 's/^listen[[:space:]]*=.*/listen = 10.0.9.123:9000/' /etc/php5/fpm/pool.d/www.conf root@phpserver1:~# systemctl restart php5-fpm.service
Ni que decir tiene que hay que editar el fichero ‘www.conf’ para poner la ip dónde escuchará el servicio ‘php5-fpm’.
Ya puedes acceder a tu contenido PHP desde el servidor WEB.
1 respuesta
viagra online
WALCOME