Tabla de Contenidos

OpenBSD-7.7 con PHP-FPM 8.4

 OpenBSD-6.7

Veremos como instalar PHP-FPM en una servidor WEB con el demonio httpd en una maquina con OpenBSD-7.7, para ejecutar codigo PHP.

Resumen

PHP-FPM, PHP-FastCGI Process Manager, es parte del paquete PHP-8 en los paquetes de OpenBSD hoy en dia.

Entonces, la instalacion de PHP-8, viene con php8.4_fpm automaticamente.

Te mostrare como configurarlo en este articulo.

Ambiente:

Entonces tenemos un Servidor con OpenBSD con:

Instalacion

El primer paso es instalar el paquete PHP:

# pkg_add php
Ambiguous: choose package for php a
      0: <None>
      1: php-8.3.21
      2: php-8.4.7
Your choice: 

Elijo 2 debido a que es la version mas reciente de las versiones de PHP.

Luego se hacen estos directorios/archivos:

$ ls /etc/php*
.rw-r--r-- 73k root 13 Jun 11:35 /etc/php-8.3.ini
.rw-r--r-- 73k root 12 Jul 16:11 /etc/php-8.4.ini
.rw-r--r-- 25k root 13 Jun 11:35 /etc/php-fpm.conf

/etc/php-8.3:

/etc/php-8.3.sample:

/etc/php-8.4:

/etc/php-8.4.sample:
.rw-r--r-- 26 root 12 Jul 16:11 opcache.ini

/etc/php-fpm.d:

Bueno, los archivos .ini en /etc/php-8.4.sample/ son extensiones PHP.

Segun la necesidad, copie cada uno de ellos en /etc/php-8.4/ para activar las extensiones:

# cp /etc/php-8.4.sample/*.ini  /etc/php-8.4/.

Tambien edite /etc/php-8.4.ini segun sea necesario. Y cambie el parametro siguiente:

;upload_max_filesize = 2M
upload_max_filesize = 5M

Ademas, el manual tambien se instala como /usr/local/share/doc/pkg-readmes/php-8.4 que declara:

Los principales paquetes php de OpenBSD incluyen php-fpm, FastCGI Process Manager

Esto gestiona grupos de procesos FastCGI: los inicia/reinicia y mantiene un numero minimo y maximo de procesos de reserva segun lo configurado. Puede usar rcctl(8) para habilitar php-fpm en el arranque e iniciarlo en tiempo de ejecucion 2.

Por lo tanto para habilitar y reiniciar el demonio debemos ejecutar, como root en una terminal:

# rcctl enable php84_fpm
# rcctl start  php84_fpm

Estamos listos, esto debe levantar el demonio y estar en ejecucion.

Uso

A continuacion, tenemos que preparar un servidor web.

Asi que editemos `/etc/httpd.conf` para agregar el `socket fastcgi` en secciones de SERVIDORES como esta:

types {
    include "/usr/share/misc/mime.types"
}

ext_addr="egress"

server "default" {
    listen on $ext_addr port 80

    root "/htdocs"
    directory index index.php

    location "*.php*" {
        fastcgi socket "/run/php-fpm.sock"
    }
}

Tenga en cuenta que chroot funciona en este contexto.

Por lo tanto, el socket fastcgi “/run/php-fpm.sock” en /etc/httpd.conf en realidad significa socket fastcgi “/var/www/run/php-fpm.sock”.

Esto es lo mismo para esa root “/htdocs” significa “/var/www/htdocs”.

Probando

Hagamos /var/www/htdocs/info.php para pruebas como esta:

# vim /var/www/htdocs/info.php

<?php
  phpinfo();
  phpinfo(INFO_MODULES);
?>

Entonces tu navegar desde tu computador te mostrara todo el phpinfo!

Como se podra dar cuenta, si analiza la entrada obsd-67-php, se mantiene practicamente igual que la actual version de OpenBSD-7.7, sin grandes cambios y sin grandes dolores de cabeza para mantener su infraestructura.