En esta ocasión vamos a ver cómo instalar PHP en FreeBSD 13 paso a paso, de tal manera que puedas trabajar con este potente lenguaje de programación en aplicaciones web o de consola sobre tu servidor o VPS FreeBSD.
Contenido
Antes de instalar PHP en FreeBSD 13
Si quieres completar los pasos de esta guía de instalación de PHP en FreeBSD 13 es importante cumplir los siguientes requisitos mínimos:
- Un sistema FreeBSD 13 actualizado.
- Un servicio web.
- Acceso a línea de comandos con privilegios de sudo.
- Conexión a Internet.
En caso de que no dispongas aún del entorno mínimo es muy probable que te interese consultar previamente nuestra guía de instalación de Apache en FreeBSD 13.
Pero si ya cumples estos requisitos es hora de regular la altura de la mesa de trabajo a la posición más cómoda y abrir una terminal de consola.
Cómo instalar PHP en FreeBSD 13
Vamos a instalar PHP en FreeBSD 13 desde los repositorios del sistema, por lo que el primer paso será actualizar su información:
~$ sudo pkg update
En el momento de redactar este tutorial FreeBSD 13 ofrece las siguientes versiones de PHP: 8.1, 8.2 y 8.3.
Para instalar una u otra versión basta con saber que los paquetes correspondientes comienzan su nombre con el prefijo phpXX-, siendo XX 81, 82 u 83. Es decir, tenemos paquetes que empiezan por php81-, php82- y php83-.
Por ejemplo, para instalar PHP 8.1 en FreeBSD 13 usaríamos el siguiente comando:
~$ sudo pkg install -y php81
Para instalar PHP 8.2 usaríamos este otro:
~$ sudo pkg install -y php82
Y para instalar PHP 8.3 usaríamos el siguiente:
~$ sudo pkg install -y php83
Además de la versión, a la hora de instalar PHP en FreeBSD 13 debemos tener en cuenta con qué servicio web vamos a trabajar. En este tutorial tendremos en cuenta los dos servicios web más usados.
Instalación de PHP en FreeBSD 13 para Apache
En este caso la integración de PHP con el servicio web se realizará a través de un módulo específico, que instalaremos teniendo en cuenta la versión de PHP que queremos utilizar. Por ejemplo, para PHP 8.1:
~$ sudo pkg install -y mod_php81
Para PHP 8.2:
~$ sudo pkg install -y mod_php82
Y para PHP 8.3:
~$ sudo pkg install -y mod_php83
Para integrar PHP con el servicio web, editamos el archivo de configuración de Apache:
~$ sudo nano /usr/local/etc/apache24/httpd.conf
Buscamos la directiva DirectoryIndex:
... <IfModule dir_module> DirectoryIndex index.html </IfModule> ...
Y añadimos el nombre de archivo index.php:
... <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> ...
Además, al final del archivo, añadiremos los siguientes bloques:
... <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch>
Guardamos los cambios y reiniciamos el servicio:
~$ sudo service apache24 restart
Instalación de PHP en FreeBSD 13 para Nginx
En este caso el servicio web interactúa con el servicio PHP-FPM, que por defecto está inactivo, así que lo activamos:
~$ sudo service php-fpm enable
Y lo iniciamos:
~$ sudo service php-fpm start
Ahora editamos el archivo de configuración principal de Nginx:
~$ sudo nano /usr/local/etc/nginx/nginx.conf
Localizamos esta sección:
... # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} ...
Está desactivada por comentarios, por lo que eliminaremos algunos de los caracteres # inciales y haremos los cambios mostrados en las directivas root y fastcgi_params:
... # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /usr/local/www/nginx; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ...
Guardamos los cambios y recargamos la configuración del servicio web:
~$ sudo service nginx reload
Cómo probar PHP en FreeBSD 13
La forma más fácil y rápida de probar PHP en FreeBSD 13 es ver si funciona la versión de consola o CLI, usando el comando php:
~$ php -v PHP 8.1.27 (cli) (built: Mar 30 2024 02:30:40) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.3.1, Copyright (c) Zend Technologies
El comando anterior nos muestra la versión de PHP instalada en FreeBSD 13 gracias al parámetro -v, y por supuesto sirve para todas las versiones:
~$ php -v PHP 8.3.1 (cli) (built: Mar 30 2024 02:58:59) ( NTS ) Copyright (c) The PHP Group Zend Engine v4.3.1, Copyright (c) Zend Technologies
Si lo que queremos es probar la integración de PHP con el servicio web de FreeBSD 13 crearemos un pequeño script que sea accesible desde un navegador.
En el caso de trabajar con Apache crearemos el archivo en la ruta correspondiente:
~$ sudo nano /usr/local/www/apache24/data/info.php
Y si se trata de Nginx haremos lo propio:
~$ sudo nano /usr/local/www/nginx/info.php
El contenido en ambos casos será el siguiente:
<?php phpinfo();
Una vez guardados los cambios, podemos acceder desde un navegador a este script indicando la dirección (IP, nombre DNS, dominio, localhost si trabajamos localmente, etc.) añadiendo el nombre del archivo que acabamos de crear.
Por ejemplo, la máquina FreeBSD 13 que hemos usado para realizar este tutorial es accesible en el subdominio freebsd13.local.lan, y hemos creado el script info.php, así que podemos usar http://freebsd13.local.lan/info.php como URL.
Una combinación de Apache con PHP 8.1 mostraría algo como esto:
O, por ejemplo, con PHP 8.3:
Cómo configurar PHP en FreeBSD 13
A continuación vamos a ver cómo configurar PHP en FreeBSD 13, ya que aunque hemos visto que la instalación funciona se basa en valores por defecto a los que habría que añadir unos mínimos ajustes.
Sea cual sea la versión que instalemos tendremos que crear el archivo de configuración de PHP a partir de uno de los dos archivos de ejemplo que nos proporciona la instalación, php.ini-development y php.ini-production. El primero está orientado a entornos de desarrollo de aplicaciones y el segundo lo está a servicios en producción que serán utilizados por usuarios finales.
Por tanto, si queremos que se muestren mensajes de error en caso de fallo para ayudar a depurar las aplicaciones PHP, por ejemplo, elegiremos el archivo php.ini-development:
~$ sudo cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini
Y si necesitamos ocultar este tipo de mensajes por tratarse de un sistema en producción, elegiremos php.ini-production:
~$ sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Ahora editaremos el nuevo archivo de configuración:
~$ sudo nano /usr/local/etc/php.ini
Buscamos la directiva date.timezone:
... ;date.timezone = ...
La activamos borrando el carácter inicial ; y le damos el valor adecuado para nuestra zona horaria, por ejemplo para España peninsular:
... date.timezone = Europe/Madrid ...
Si no conoces el valor de la zona horaria que te interesa, puedes consultarlo en la documentación oficial.
Una vez guardados los cambios, habrá que recargar la configuración del servicio web si trabajamos con Apache:
~$ sudo service apache24 reload
O del servicio PHP si usamos Nginx:
~$ sudo service php-fpm reload
Cualquier otra configuración que debas hacer en PHP se realizará repitiendo el proceso anterior.
Conclusión
Ahora que sabes cómo instalar PHP en FreeBSD 13 ya puedes usar la potencia de este lenguaje de programación tanto para desarrollar e instalar aplicaciones web como aplicaciones de consola en tu servidor o VPS.
¡Apoya comoinstalar.me!
¿Ya funciona este lenguaje de programación en tu propia máquina? Si es así y quieres agradecérnoslo, siempre es bienvenida cualquier mínima aportación al mantenimiento y creación de más artículos y tutoriales.
Puedes ayudarnos dejando una propina de tan sólo 1 $ desde PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!
Saludos. Quería comentarles que en FreeBSD 13.2 cuanto instalo mod_php82 apache24 deja de funcionar, no corre. Arroja lo siguiente.
root@freebsd132:/usr/local/etc/apache24# service apache24 restart
Performing sanity check on apache24 configuration:
Syntax OK
apache24 not running? (check /var/run/httpd.pid).
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.
root@freebsd132:/usr/local/etc/apache24# service apache24 status
apache24 is not running.
root@freebsd132:/usr/local/etc/apache24#
He hecho de todo y no he conseguido que funcione, probé con php83 pero tampoco funcionó, lo que me toca probar con php81.
Hola, Jose. Acabo de revisar el tutorial sobre FreeBSD 13.3 instalando varias versiones de PHP y no he tenido problema alguno. Seguramente al modificar el archivo de configuración del servicio web para introducir los ajustes de PHP es posible que se haya colado alguna errata. Revisa la configuración para que coincida exactamente con lo que se muestra en el tutorial.
También puedes obtener pistas de qué puede estar ocurriendo consultando el archivo /var/log/httpd-error.log.