Cómo instalar FAMP en FreeBSD 12

En esta entrada vamos a explicar cómo instalar FAMP en FreeBSD 12 paso a paso, un entorno que es la base de muchas de las aplicaciones web y CMS que puedes montar en tu servidor o VPS FreeBSD.

Quizás te suene raro el término FAMP y hayas visto más el de LAMP. Son términos muy parecidos ya que a fin de cuentas se trata de una pila con Apache, MariaDB/MySQL y PHP sobre el sistema operativo. En el caso de LAMP el sistema es Linux, por lo que en FreeBSD cambiamos la L por una F y tenemos FAMP. Al final de esta guía tendrás todos estos componentes funcionando perfectamente sincronizados.

Antes de instalar FAMP en FreeBSD 12

Para seguir con éxito esta guía de instalación de FAMP en FreeBSD 12, necesitarías cumplir estos requisitos:

  • Un sistema FreeBSD 12 actualizado.
  • Conexión a Internet.
  • Acceso a línea de comandos con un usuario privilegiado (sudo) o el mismo root.
  • Una mínima experiencia en consola, editando archivos, navegando entre directorios en el sistema, etc.

Si estas leyendo este tutorial es casi seguro que ya cumples estos requerimientos, así que prepárate, que allá vamos.

Cómo instalar FAMP en FreeBSD 12

Todo el software que vamos a usar para instalar la pila FAMP en FreeBSD 12 procede de los repositorios oficiales del sistema. Así que lo lógico es actualizar las listas de paquetes y, preferiblemente, los paquetes instalados:

$ sudo pkg update

Apache y PHP

Con el sistema actualizado es el momento de instalar los paquetes necesarios. Empezamos con apache24, mod_php74 y php74-mysqli (si te interesa PHP 8.0, ó versiones anteriores como la 7.2 ó 7.3 cambia los nombres de los paquetes de forma adecuada):

$ sudo pkg install -y apache24 php74-mysqli mod_php74

Una vez descargados e instalados todos estos paquetes y sus dependencias tendremos un nuevo servicio en FreeBSD 12, el servicio apache24.

¿MariaDB o MySQL?

Para nuestra pila FAMP en FreeBSD 12 podemos usar como servicio de bases de datos MariaDB ó MySQL. Si quieres instalar la última versión de MariaDB 10, el paquete que debes instalar es mariadb105:

$ sudo pkg install -y mariadb105-server

En el momento de escribir esta guía también dispones de versiones anteriores, los paquetes mariadb103-server y mariadb104-server, para las versiones 10.3 y 10.4 de MariaDB Server, respectivamente.

Si has elegido MariaDB 10.4, tras la instalación habrá que cambiar los permisos del directorio /var/run/mysql/ o de lo contrario el servicio no podrá iniciar:

~$ sudo chown mysql /var/run/mysql/

Si prefieres MySQL 8, puedes instalar el paquete mysql80-server:

$ sudo pkg install -y mysql80-server

Y, si prefieres MySQL 5, como en el caso anterior también dispones de varias versiones a través de los paquetes mysql55-server, mysql56-server y mysql57-server, para las versiones 5.5, 5.6 y 5.7 de MySQL Server, respectivamente.

En otros sistemas la instalación prácticamente deja configurados todos los elementos de la pila, pero en FreeBSD 12 vamos a tener que hacer unos cuantos ajustes. Nada grave, sólo un poco de trabajo extra.

Activar e iniciar el servicio de bases de datos

El primer servicio que levantaremos será el servicio de bases de datos. Sea cual sea el motor de bases de datos que hayas elegido, el nombre del servicio es mysql_server y el primer paso es habilitarlo para que inicie automáticamente con FreeBSD 12:

$ sudo service mysql-server enable

A continuación lo iniciamos:

$ sudo service mysql-server start

Ya tenemos MariaDB o MySQL Server listo para aceptar conexiones. Es importante lanzar el script mysql_secure_installation, para dejar la instalación con ajustes seguros y asignar una contraseña al usuario root, que inicialmente o no tiene contraseña o tiene una contraseña temporal que debe ser cambiada.

$ sudo mysql_secure_installation

El cliente de consola mysql se ha instalado como dependencia, por lo que podemos conectar como usuario root:

$ mysql -u root -p

Ya puedes crear usuarios, bases de datos, etc. cuando lo necesites.

Configurar PHP

PHP buscará su configuración para los scripts y aplicaciones en este lenguaje en el archivo /usr/local/etc/php.ini. El problema es que tras la instalación este archivo no existe.

Sin embargo, en la misma ruta existen los archivos php.ini-development y php.ini-production. Son archivos preconfigurados para entornos de desarrollo o producción.

Sólo tienes que elegir cuál de los dos entornos se ajusta a tu servidor FAMP y crear un enlace simbólico al archivo correspondiente llamándolo php.ini.

En este ejemplo se trata de un entorno de desarrollo, así que crearemos el enlace consecuentemente:

$ sudo ln -s /usr/local/etc/php.ini-development /usr/local/etc/php.ini

Sólo queda configurar la zona horaria dentro de nuestro nuevo archivo de configuración de PHP. Editaremos php.ini:

$ sudo nano /usr/local/etc/php.ini

Y buscaremos la directiva date.timezone:

...
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
...

Podemos ver que está desactivada y no tiene ningún valor. La activaremos eliminando el carácter ; inicial y le asignaremos el valor de nuestra zona horaria (en la URL http://php.net/date.timezone indicada en el comentario puedes encontrar todos los valores que admite esta directiva).

...
date.timezone = Europe/Madrid
...

También configuraremos el socket de Unix para la conexión con el servicio de bases de datos, para lo que buscamos las directivas adecuadas:

...
[Pdo_mysql]
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
pdo_mysql.default_socket=
...
; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/mysqli.default-socket
mysqli.default_socket =
...

Y les damos el valor adecuado (comprueba que el archivo .sock existe realmente en la ubicación indicada):

...
pdo_mysql.default_socket=/var/run/mysql/mysql.sock
...
mysqli.default_socket = /var/run/mysql/mysql.sock
...

Finalmente, guardamos los cambios.

Activar e iniciar el servidor web

Es el turno de Apache y la primera acción será activarlo:

$ sudo service apache24 enable

Pero en esta ocasión todavía no vamos a lanzar el servicio, y es que aunque durante la instalación se ha añadido la carga del módulo de PHP en la configuración de Apache, no se ha creado una configuración de este módulo de PHP. Por lo tanto no funciona, pero lo vamos a solucionar rápidamente.

Crearemos un archivo de configuración para el módulo en la ruta /usr/local/etc/apache24/modules.d/:

$ sudo nano /usr/local/etc/apache24/modules.d/010_php.conf

Puedes poner el nombre que quieras, pero debe empezar por tres números seguidos de un guión bajo y terminar por .conf. Esta nomenclatura es para especificar el orden de carga si hubiera varios archivos de configuración de módulos en la ruta.

Incluye este contenido en el nuevo archivo:

<IfModule dir_module>
        DirectoryIndex index.php
</IfModule>
<FilesMatch "\.php$">
        SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
</FilesMatch>

Hemos terminado con la configuración de Apache para PHP.

Ahora vamos a ajustar rápidamente el archivo de configuración principal de Apache para evitar una molesta alerta cada vez que inicia el servidor web, tanto en consola como en los archivos de registro.

Editamos el archivo principal de configuración, el famoso httpd.conf:

$ sudo nano /usr/local/etc/apache24/httpd.conf

Buscaremos la directiva ServerName:

...
#ServerName www.example.com:80
...

La directiva está desactivada, así que le asignaremos un valor adecuado y la activaremos eliminando el carácter # inicial:

...
ServerName freebsd12.local.lan:80
...

Puedes poner el nombre corto de la máquina o el completo. Esto evitará los mensajes de alarma relacionados.

Y a continuación lanzamos el servicio:

$ sudo service apache24 start

Ni rastro de alertas o errores. Y ya tenemos el servicio de Apache en ejecución usando PHP.

Comprobar la pila FAMP en FreeBSD 12

Creamos un script de prueba de PHP en la misma carpeta de la página web por defecto (/usr/local/www/apache24/data/):

$ sudo nano /usr/local/www/apache24/data/info.php

El contenido es mínimo, una sola línea de código bastará:

<?php phpinfo(); ?>

Ahora accedemos al servidor FAMP desde un navegador, usando como URL su dirección IP, nombre de máquina o dominio, añadiendo la ruta /info.php.

En este ejemplo uso el dominio local freebsd12.local.lan, por lo que se podría utilizar http://freebsd12.local.lan/info.php como URL del script:

como instalar famp en freebsd 12

Y vemos que PHP funciona perfectamente, mostrando la versión instalada y multitud de datos sobre su configuración.

Si elegiste PHP 8.0 se mostrará igualmente toda la información sobre la versión actual:

famp en freebsd 12

Listo, ya tienes la pila FAMP instalada en tu sistema FreeBSD 12.

Conclusión

Ahora ya sabes cómo instalar una pila FAMP en FreeBSD 12. Habrás comprobado que tiene algo más de trabajo que en otros sistemas, pero siguiendo todos los pasos en el orden correcto y sabiendo qué hacemos en cada momento no tiene mayor dificultad.

Ya puedes comenzar tu desarrollo de aplicaciones web o simplemente proporcionar el backend que muchos CMS y aplicaciones requieren para funcionar.

Si tienes alguna duda, pregunta, sugerencia, notificación nada mejor que dejar un comentario.

¡Apoya comoinstalar.me!

¿Pensabas que instalar una pila FAMP en FreeBSD 12 iba a ser difícil? ¿Estabas cansado de dar vueltas sin llegar a ningún sitio? Pues si estás emocionado y agradecido por haberlo conseguido, cualquier mínima contribución será bienvenida para el mantenimiento de este sitio y elaboración de nuevas guías, y puedes hacerlo dejando una propina a partir de 1 $ desde PayPal:

O, si te sientes especialmente generoso, invitándome a un café:

¡Gracias!

Valora esta entrada

5/5 - (2 votos)

4 comentarios en «Cómo instalar FAMP en FreeBSD 12»

Deja un comentario