Introducción
Esta es una guía actualizada para instalar Apache 2.4 con Event MPM, PHP 8.3 vía PHP-FPM y MariaDB 11 en FreeBSD 14. Todos los paquetes se instalan con pkg, el gestor de paquetes binarios — sin necesidad de compilar desde ports.
Si buscás la guía antigua con FreeBSD 10 y PHP 5.6, todavía está aquí, pero las versiones que cubre ya no tienen soporte.
Actualizar el sistema
Antes de instalar, actualizá el índice de paquetes y el sistema base:
freebsd-update fetch install
pkg update && pkg upgrade
Instalar Apache 2.4
pkg install apache24
Habilitarlo para que arranque al inicio:
sysrc apache24_enable="YES"
Activar Event MPM
Editá /usr/local/etc/apache24/httpd.conf y asegurate de que solo esté cargado el módulo Event MPM:
#LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
#LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so
LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so
Descomentá también los módulos de proxy necesarios para PHP-FPM:
LoadModule proxy_module libexec/apache24/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so
Agregá un nombre de servidor para evitar el aviso al iniciar:
ServerName localhost
Instalar PHP 8.3 con FPM
pkg install php83 php83-extensions mod_php83
Habilitá PHP-FPM:
sysrc php_fpm_enable="YES"
Copiá la configuración por defecto:
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
El pool por defecto de PHP-FPM escucha en 127.0.0.1:9000. Inicialo:
service php-fpm start
Instalar MariaDB 11
pkg install mariadb1011-server
Habilitalo e inicialo:
sysrc mysql_enable="YES"
service mysql-server start
Asegurá la instalación:
mysql_secure_installation
Establecé una contraseña para root y aceptá el resto de los valores por defecto.
Configurar un virtual host
Creá el directorio /usr/local/etc/apache24/conf.d/ si no existe y agregá un include al final de httpd.conf:
Include etc/apache24/conf.d/*.conf
Creá los directorios del sitio:
mkdir -p /usr/local/www/misitio/{public_html,logs}
chown -R www:www /usr/local/www/misitio/
Creá /usr/local/etc/apache24/conf.d/misitio.conf:
<VirtualHost *:80>
ServerName misitio.ejemplo.com
DocumentRoot "/usr/local/www/misitio/public_html"
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
<Directory "/usr/local/www/misitio/public_html">
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog "/usr/local/www/misitio/logs/error.log"
CustomLog "/usr/local/www/misitio/logs/access.log" common
</VirtualHost>
Iniciar Apache y verificar
service apache24 start
Verificá el MPM en uso:
httpd -V | grep MPM
Resultado esperado:
Server MPM: event
Creá un archivo de prueba:
echo "<?php phpinfo();" > /usr/local/www/misitio/public_html/info.php
Abrí http://misitio.ejemplo.com/info.php en el navegador y buscá:
Server API FPM/FastCGI
Eso confirma que PHP-FPM está procesando las solicitudes. Borrá el archivo una vez verificado:
rm /usr/local/www/misitio/public_html/info.php
Resumen
| Componente | Versión |
|---|---|
| FreeBSD | 14 |
| Apache | 2.4 Event MPM |
| PHP | 8.3 FPM |
| MariaDB | 11 |