===== OpenBSD-6.7 con PHP-FPM 7.4 ===== {{ :informatica:openbsd:puffy67.gif?380 | OpenBSD-6.7}} Veremos como instalar PHP-FPM en una servidor WEB con el demonio **httpd** en una maquina con OpenBSD-6.7, para ejecutar código PHP. ==== Resumen ==== [[https://php-fpm.org/|PHP-FPM]], **PHP**-**F**astCGI **P**rocess **M**anager, es parte del paquete PHP-7 en los paquetes de OpenBSD hoy en día. Entonces, la instalación de PHP-7, viene con php7_fpm automáticamente. Te mostraré cómo configurarlo en este artículo. === Ambiente: === Entonces tenemos un Servidor con OpenBSD con: * OpenBSD 6.7 amd64 * PHP-7.3 ==== Instalación ==== El primer paso es instalar el paquete PHP: # pkg_add php Ambiguous: choose package for php a 0: 1: php-5.6.38p0 2: php-7.0.32p1 3: php-7.1.22 4: php-7.2.10 5: php-7.3.18 Your choice: Elijo "5" debido a cada término de soporte 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-7.4.ini .rw-r--r-- 73k root 12 Jul 16:11 /etc/php-8.0.ini .rw-r--r-- 25k root 13 Jun 11:35 /etc/php-fpm.conf /etc/php-7.4: /etc/php-7.4.sample: /etc/php-8.0: /etc/php-8.0.sample: .rw-r--r-- 26 root 12 Jul 16:11 opcache.ini /etc/php-fpm.d: Bueno, los archivos **.ini** en **/etc/php-7.3.sample/** son extensiones PHP. Según la necesidad, copie cada uno de ellos en **/etc/php-7.4/** para activar las extensiones: # cp /etc/php-7.4.sample/*.ini /etc/php-7.4/. También edite **/etc/php-7.3.ini** según sea necesario. Y cambie el parámetro siguiente: ;upload_max_filesize = 2M upload_max_filesize = 5M Además, el manual también se instala como **/usr/local/share/doc/pkg-readmes/php-7.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 php74_fpm * rcctl start php74_fpm Por lo tanto para habilitar y reiniciar el demonio debemos ejecutar, como **root** en una terminal: # rcctl enable php74_fpm # rcctl start php74_fpm Estamos listos, esto debe levantar el demonio y estar en ejecucion. * **Solución de problemas**: si no puede iniciar php74_fpm (o php73_fpm), podría ser el error conocido [[https://dev.to/nobbisen/fixing-php72fpm-on-openbsd-64-f0f | Arreglando php72_fpm en OpenBSD 6.4]] ===== Uso ===== A continuación, tenemos que preparar un servidor web. Así 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 mostrará todo el **phpinfo!**