===== OpenBSD-7.7 con PHP-FPM 8.4 ===== {{ :informatica:openbsd:puffy77.gif?380 | 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 ==== [[https://php-fpm.org/|PHP-FPM]], **PHP**-**F**astCGI **P**rocess **M**anager, 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: * OpenBSD 7.7 amd64 * PHP-8.4 ==== Instalacion ==== El primer paso es instalar el paquete PHP: # pkg_add php Ambiguous: choose package for php a 0: 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. * rcctl enable php84_fpm * rcctl start php84_fpm 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. * **Solucion de problemas**: si no puede iniciar php84_fpm (o php82_fpm), podria ser el error conocido [[https://dev.to/nobbisen/fixing-php72fpm-on-openbsd-64-f0f | Arreglando php72_fpm en OpenBSD 6.4]], reviselo y adaptelo a su version en uso. ===== 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 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.