En este artículo veremos cómo instalar PHP en FreeBSD 11 paso a paso, de modo que puedas trabajar con las últimas versiones de este lenguaje de programación integrado con tu servicio web en tu servidor o VPS FreeBSD.
Contenido
Antes de instalar PHP en FreeBSD 11
Para poder seguir los pasos de esta guía de instalación de PHP en FreeBSD 11 debemos partir del siguiente contexto mínimo:
- Una máquina FreeBSD 11 convenientemente actualizada.
- Un servicio web.
- Acceso a consola con un usuario con permisos de sudo.
- Conexión a Internet.
Si aún no dispones del entorno mínimo necesario, puedes consultar nuestra guía de instalación de Apache en FreeBSD 11.
Cómo instalar PHP en FreeBSD 11
Vamos a instalar PHP en FreeBSD 11 desde los repositorios del sistema, por lo que el primer paso será actualizar la información de estos repositorios:
~$ sudo pkg update
En el momento de actualizar este artículo, los repositorios contienen las últimas versiones de PHP 7 y PHP 8 para FreeBSD 11, concretamente las versiones 7.3, 7.4 y 8.0. Esto es importante saberlo porque el número de versión de PHP aparece en el nombre de los paquetes, normalmente en un prefijo del tipo phpXX, donde sustituiremos XX por 73, 74 u 80.
En este artículo instalaremos PHP 7.4 para FreeBSD 11, así que el nombre de los paquetes contendrá el prefijo php74. En tu caso actualiza los comandos mostrados para instalar la versión de PHP que te interese.
Cómo instalar PHP para Apache en FreeBSD 11
Instalamos el paquete común de PHP y el módulo para este servicio web:
~$ sudo pkg install -y php74 mod_php74
Creamos un archivo de configuración para Apache:
~$ sudo nano /usr/local/etc/apache24/Includes/php.conf
Con el contenido:
DirectoryIndex index.php <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
Cómo instalar PHP para Nginx en FreeBSD 11
En el caso de este servidor web basta con instalar el paquete común de PHP:
~$ sudo pkg install -y php74
En lugar de un módulo, en este caso usaremos el servicio PHP FPM, que debe ser habilitado editando el archivo rc.conf:
~$ sudo nano /etc/rc.conf
Añadimos la siguiente línea al final del archivo:
... php_fpm_enable="YES"
Guardamos el archivo e iniciamos el servicio PHP FPM:
~$ sudo service php-fpm start
Ahora editamos el archivo de configuración de Nginx para que pueda conectar con el servicio PHP:
~$ sudo nano /usr/local/etc/nginx/nginx.conf
Buscamos la siguiente 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; #} ...
Activamos todo el bloque location y las directivas que contiene, eliminando los caracteres # al inicio, y haciendo algunos cambios en los valores:
... # 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; } ...
En la directiva root cambiamos el valor por la ruta del sitio web por defecto y en la directiva fastcgi_param hacemos el cambio mostrado para que el servicio web envíe y reciba la información correcta desde el servicio PHP.
Guardamos los cambios y recargamos la configuración del servicio:
~$ sudo service nginx reload
Cómo probar PHP en FreeBSD 11
Vamos a probar PHP en FreeBSD 11 desde un navegador, creando un pequeño script en este lenguaje.
Para Apache creamos el siguiente archivo:
~$ sudo nano /usr/local/www/apache24/data/info.php
Y para Nginx lo creamos en la siguiente ubicación:
~$ sudo nano /usr/local/www/nginx/info.php
En cualquier caso, el contenido será la siguiente línea:
<? phpinfo();
Guardados los cambios y cerrado el archivo, ya podemos acceder desde el navegador utilizando la dirección IP, dominio, nombre DNS, localhost, etc. y añadiendo el nombre del archivo que acabamos de crear.
Por ejemplo, en el caso de este tutorial el servidor FreeBSD 11 es accesible en el subdominio freebsd11.local.lan, y hemos creado el archivo info.php en la raíz del sitio web por defecto, por lo que podemos usar http://freebsd11.local.lan/info.php como URL para la prueba:
Si decidiste instalar PHP 8.0 igualmente se mostrará la correspondiente información:
Cómo configurar PHP en FreeBSD 11
A la hora de configurar PHP en FreeBSD 11 hay que tener en cuenta que la instalación prepara dos archivos de muestra de configuración para dos escenarios distintos del servidor: desarrollo y producción.
El archivo de configuración principal de PHP, php.ini, tendrá que ser una copia o un enlace simbólico a partir de uno los archivos mencionados. En este tutorial realizaremos una copia, para mantener a salvo los archivos originales si algo no saliera bien.
Si nuestro servidor FreeBSD 11 se encuentra en un entorno de desarrollo en el que, por ejemplo, deseamos que se muestre información que ayude a depurar errores, enlazamos o copiamos el archivo php.ini-development:
~$ sudo cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini
Sin embargo, si nuestro servidor se encuentra en un entorno de producción en el que, por ejemplo, es importante ocultar cualquier información sensible que se pueda mostrar en caso de error, deberíamos enlazar o copiar el archivo php.ini-production:
~$ sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Otras configuraciones en php.ini
Hay algunos ajustes de PHP que son independientes del tipo de entorno del servidor FreeBSD 11, como por ejemplo la zona horaria. Para configurar este y otros ajustes editamos el archivo php.ini:
~$ sudo nano /usr/local/etc/php.ini
Buscamos la directiva que necesitamos ajustar, en este caso date.timezone:
... [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone ;date.timezone = ...
Podemos comprobar que está desactivada, así que tendríamos que activarla eliminando el carácter ; al inicio de línea y darle el valor adecuado:
... date.timezone = Europe/Madrid ...
Si no conoces el valor de la zona horaria que deseas configurar puedes consultarlo en https://www.php.net/manual/es/timezones.php.
Guardamos los cambios y recargamos la configuración del servicio.
En el caso de Apache:
~$ sudo service apache24 reload
Y en el caso de Nginx recargamos la configuración del servicio PHP:
~$ sudo service php-fpm reload
Conclusión
Ahora que sabes cómo instalar y configurar PHP en FreeBSD 11 ya puedes trabajar con aplicaciones realizadas en este lenguaje de programación, tanto tus propios desarrollos como aplicaciones de terceros.
En caso de dudas, preguntas, sugerencias, etc. sobre este tutorial puedes dejar un comentario (están moderados para evitar SPAM, pero se revisan diariamente).
¡Apoya comoinstalar.me!
¿Ya funciona este lenguaje de programación del lado del servidor en tu propio sistema gracias a nuestra pequeña guía? Si es así y te apetece agradecérnoslo ayudando al mantenimiento de este sitio y la creación de más tutoriales y guías, puedes hacerlo dejando 1 $ de propina con PayPal:
O, si te sientes especialmente agradecido, invitándonos a un café:
¡Gracias!