Este es un corto artículo acerca de como instalar PHP-FPM 7 y Apache 2.4 en Ubuntu 18.04 LTS.

PHP es un lenguaje de programación para la web, es libre y de fuente abierta y sirve para crear sitios web dinámicos. Es una alternativa muy viable a software privativo como ASP de Microsoft. Los gestores de contenido más populares del mundo como Drupal, WordPress y Joomla usan PHP para funcionar.

Posiblemente has escuchado sobre mod_php y Apache. La ventaja de usar PHP-FPM es que puedes ejecutar el proceso como el usuario web que tu desees, incluso puedes crear un proceso para cada usuario de tu sistema.

Paso 1: Instalar Apache

Primero necesitamos habilitar el repositorio “universe”:

sudo add-apt-repository universe

Ahora procedemos a instalar Apache 2:

sudo apt update
sudo apt upgrade
sudo apt install apache2

Upgrade Performance

Ahora procedemos a habilitar los módulos requeridos:

sudo a2enmod proxy proxy_fcgi rewrite ssl setenvif

Después de instalar Apache necesitamos asegurarnos de que el servicio este activo cada vez que el sistema cargue.

sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

Paso 2: Instalar PHP-FPM

Para instalar PHP-FPM ejecuta el siguiente comando:

sudo apt install php-fpm

Para verificar que está correctamente instalado y que el programa está ejecutando, ejecuta el siguiente comando:

sudo systemctl status php7.2-fpm

Deberás ver algo como esto:

● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-06-12 05:48:06 UTC; 21s ago
     Docs: man:php-fpm7.2(8)
 Main PID: 17552 (php-fpm7.2)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/php7.2-fpm.service
           ├─17552 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
           ├─17566 php-fpm: pool www
           └─17567 php-fpm: pool www

Jun 12 05:48:06 server.mydomain.com systemd[1]: Starting The PHP 7.2 FastCGI Process Manager...
Jun 12 05:48:06 server.mydomain.com systemd[1]: Started The PHP 7.2 FastCGI Process Manager.

Adicionalmente puedes instalar otros paquetes para complementar y mejorar la funcionalidad de PHP.

Ejecuta el siguiente comando para ver una lista de extensiones que puedes instalar:

sudo apt-cachesearch php7.2

Para instalar la extensión que desees solo ejecuta el comando:

sudo apt install php-[extension]

Donde [extension] es el nombre de la extensión que necesitas, por ejemplo si deseas instalar CURL y MySQL, el comando sería el siguiente:

sudo apt install php-mysql php-curl

Paso 3: Configurar PHP-FPM

Ahora que tenemos instalado PHP-FPM necesitamos configurarlo. Lo primero que haremos es crear un nuevo “pool”. Para ello hacemos lo siguiente:

sudo nano /etc/php/7.2/fpm/pool.d/inlive.conf

Y pega el siguiente contenido:

[inlive]
user = inlive
group = www-data
listen = 127.0.0.1:9000
listen.owner = inlive
listen.group = www-data
listen.allowed_clients = 127.0.0.1
pm = ondemand
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.process_idle_timeout = 30s

En este caso lo que debes hacer es modificar “inlive” por el usuario de tu preferencia.

Si deseas saber que significa cada una de estas líneas puedes abrir el archivo /etc/php/7.2/fpm/pool.d/www.conf para leer los comentarios.

Ahora necesitamos reiniciar PHP-FPM:

sudo systemctl restart php7.2-fpm

Paso 4: Configurar Apache 2

Ya casi terminamos, el último paso es configurar Apache para que funcione con PHP-FPM y así pueda procesar archivos PHP correctamente.

Creamos un nuevo sitio web:

sudo nano /etc/apache2/sites-available/dominio.com.conf

Pegamos el siguiente contenido:

<VirtualHost *:80>
  ServerAdmin webmaster@dominio.com
  DocumentRoot "/home/inlive/dominio.com/public"
  ServerName dominio.com
  ServerAlias www.dominio.com
  ErrorLog "/home/inlive/logs/dominio.com-error_log.log"
  CustomLog "/home/inlive/logs/dominio.com-access_log.log" common
  <Directory "/home/inlive/dominio.com/public">
      Options FollowSymLinks
      Require all granted
      AllowOverride All
  </Directory>
  ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/home/inlive/dominio.com/public/$1
</VirtualHost>

Aquí también debes reemplazar “inlive” por el usuario de tu elección.

También debemos crear las siguientes carpetas:

mkdir -p dominio.com/public
mkdir logs

Estos comandos deben ser ejecutados por el usuario “inlive” en este caso.

Ahora usando sudo debemos cambiar el usuario y grupo para las nuevas carpetas:

sudo chown inlive:www-data -R dominio.com/
sudo chown www-data:www-data logs/

Ahora activamos el nuevo sitio web y reiniciamos Apache:

sudo a2ensite dominio.com
sudo systemctl restart apache2

Probando la instalación

Para probar que PHP funciona correctamente crearemos un nuevo archivo PHP:

echo '<?php phpinfo();' > dominio.com/public/index.php

Y al abrir nuestro navegador, visitamos nuestro dominio, deberás ver algo como esto:

Felicitaciones, ya tienes un servidor Apache + PHP-FPM listo!

Suscríbete a nuestro Newsletter

Suscríbete a nuestro Newsletter

Únete a nuestro newsletter para recibir las últimas noticias acerca de nuestros servicios.

Gracias por suscribirte.

Pin It on Pinterest

Share This
WhatsApp chat