En este artículo explicamos cómo instalar una pila FEMP en FreeBSD 12 paso a paso, de modo que al final dispondrás del servidor web Nginx con PHP y servicio de bases de datos MariaDB/MySQL en tu servidor o VPS FreeBSD.
Contenido
Antes de instalar FEMP en FreeBSD 12
Si tienes intención de seguir esta guía de instalación y configuración de la pila FEMP en FreeBSD 12, debes partir de las siguientes condiciones mínimas:
- Una máquina FreeBSD 12 actualizada.
- Acceso a consola como root o un usuario con privilegios de sudo.
- Conexión a Internet.
Cómo instalar FEMP en FreeBSD 12
Para instalar la pila FEMP en FreeBSD 12 usaremos los paquetes de los que disponemos en los repositorios del sistema, por lo que es buena idea empezar actualizando las listas de paquetes:
~$ sudo pkg update
Es el momento de instalar los paquetes necesarios con el comando pkg:
~$ sudo pkg install -y nginx php73 php73-mysqli mariadb104-server
Puedes personalizar la instalación sustituyendo MariaDB por MySQL, indicando el paquete mysql80-server en lugar de mariadb104-server. Y también puedes cambiar la versión de PHP cambiando los paquetes con php73 por php71, php72 ó php74.
En cualquier caso, tras la descarga e instalación de estos paquetes y sus dependencias se crean tres nuevos servicios en FreeBSD 12, llamados nginx, mysql-server y php-fpm. Ninguno de estos servicios está en ejecución ni habilitado para su inicio automático junto a FreeBSD 12, por lo que tendremos que habilitarlos y arrancarlos manualmente.
MariaDB/MySQL
Independientemente de si has instalado MariaDB o MySQL, el servicio se llama igual, mysql-server. Habilitamos el servicio:
~$ sudo service mysql-server enable
Y a continuación lo arrancamos:
~$ sudo service mysql-server start
PHP
En el caso del servicio php-fpm lo habilitaremos:
~$ sudo service php-fpm enable
Y lo iniciaremos:
~$ sudo service php-fpm start
Nginx
Para el servidor web, habilitamos el servicio nginx:
~$ sudo service nginx enable
Y lo iniciamos:
~$ sudo service nginx start
Cómo configurar FEMP en FreeBSD 12
Aunque los servicios ya están habilitados e iniciados, es necesario configurar la pila LEMP en FreeBSD 12 para que todos los engranajes giren a la vez.
MariaDB/MySQL
Para asignar una contraseña al usuario root del servicio de bases de datos, y eliminar la base de pruebas y los usuarios anónimos, lanzaremos el script interactivo mysql_secure_installation:
~$ sudo mysql_secure_installation
Por ejemplo, en el caso de MariaDB el script comienza pidiendo la contraseña actual de root, que no tiene.
Se nos preguntará si queremos que el usuario root use autenticación por contraseña o mediante el plugin unix_socket, eligiendo lo que nos interese.
Al resto de preguntas, sobre la base de datos de pruebas, usuarios anónimos, acceso remoto de root, etc. contestaremos afirmativamente.
PHP
La configuración de PHP para el servicio PHP-FPM se lee del archivo php.ini que aún no existe. El paquete de PHP instala los archivos de muestra php.ini-production y php.ini-development para entornos de producción y desarrollo, respectivamente. Podemos crear un enlace simbólico a uno de estos archivos, o copiarlo, como php.ini.
Si, por ejemplo, se trata de un entorno de desarrollo, creamos un enlace simbólico a php.ini-development:
~$ sudo ln -s /usr/local/etc/php.ini-development /usr/local/etc/php.ini
Para cualquier ajuste que necesitemos realizar editaremos php.ini:
~$ sudo nano /usr/local/etc/php.ini
Un ajuste que siempre debe hacerse es el de la zona horaria del servidor, a través de la directiva date.timezone:
... [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone ;date.timezone = ...
Le daremos el valor que corresponda y eliminaremos el carácter ; inicial para activarla:
... date.timezone = Europe/Madrid ...
Hecho este o cualquier otro cambio, una vez guardado el archivo php.ini hay que recargar la configuración del servicio PHP-FPM para que entren en vigor:
~$ sudo service php-fpm reload
Nginx
Vamos a crear un directorio para configuraciones adicionales de Nginx:
~$ sudo mkdir /usr/local/etc/nginx/include.d/
Y creamos un archivo de configuración para conectar Nginx con el servicio PHP-FPM:
~$ sudo nano /usr/local/etc/nginx/include.d/php-fpm.conf
El contenido será este:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
Editamos la configuración del sitio web por defecto de Nginx, en el archivo nginx.conf:
~$ sudo nano /usr/local/etc/nginx/nginx.conf
Dentro del bloque server principal, en el bloque location de la carpeta raíz de documentos web, colocaremos una directiva include que cargue el archivo de configuración de PHP-FPM:
... server { ... location / { root /usr/local/www/nginx; index index.html index.htm; include include.d/php-fpm.conf; } ...
Esta directiva include se debe añadir de forma similar en las configuraciones de los servidores virtuales (si existen).
Terminados los cambios, recargamos la configuración de Nginx:
~$ sudo service nginx reload
Cómo probar FEMP en FreeBSD 12
Para probar la pila FEMP en FreeBSD 12 crearemos un pequeño script realizado en PHP fácilmente accesible vía web:
~$ sudo nano /usr/local/www/nginx/info.php
Con este contenido:
<?php phpinfo();
Guardamos los cambios y accedemos desde un navegador, añadiendo la ruta /info.php a la dirección IP o dominio del servidor FreeBSD 12 en el que hemos instalado la pila FEMP:
Conclusión
Ya sabes cómo instalar y configurar la pila FEMP en FreeBSD 12, con lo que podrás instalar y desarrollar aplicaciones web sobre tu servidor o VPS, usando como servidor web Nginx.
¡Apoya este sitio!
¿Ya tienes el entorno funcionando gracias a esta guía de instalación y configuración de la pila FEMP en FreeBSD 12? Si es así y te apetece agradecérnoslo, cualquier pequeña aportación ayuda mucho al mantenimiento de este sitio y la creación de más tutoriales de FreeBSD 12. ¡Gracias!