En esta ocasión veremos cómo instalar la pila FAMP en FreeBSD 11 paso a paso, de modo que puedas trabajar con Apache, MariaDB/MySQL y PHP sobre tu servidor o VPS FreeBSD.
Contenido
Antes de instalar FAMP en FreeBSD 11
Para completar los pasos de esta guía de instalación de la pila FAMP en FreeBSD 11 bastará con partir de la siguiente base:
- Un sistema FreeBSD 11 convenientemente actualizado.
- Un usuario con permisos de sudo.
- Acceso a Internet.
Este tutorial es una guía rápida, por lo que si deseas mayor información sobre cualquiera de los elementos que componen la pila FAMP, encontrarás tutoriales más extensos en este sitio web.
Cómo instalar FAMP en FreeBSD 11
Llegado el momento de instalar una pila FAMP en FreeBSD 11 es importante saber que disponemos de distintos elementos y versiones con los que ensamblar este entorno, todos ellos procedentes de los repositorios de FreeBSD 11. Por ello a continuación veremos las distintas posibilidades.
Servicio de bases de datos
En cuanto al servicio de bases de datos podemos optar entre las distintas versiones disponibles de MariaDB y MySQL.
Para el caso de MariaDB, disponemos de las versiones 10.3, 10.4 y 10.5, correspondiéndose con los paquetes mariadb103-server, mariadb104-server y mariadb105-server.
Si nos inclinamos por MySQL disponemos de las versiones 5.5, 5.6, 5.7 y 8.0, que se corresponden con los paquetes mysql55-server, mysql56-server, mysql57-server y mysql80-server.
Apache y PHP
Además de los archivos comunes de PHP, este lenguaje de programación conecta con Apache a través de un módulo para el servidor web, pudiendo optar actualmente por las versiones 7.3, 7.4 y 8.0 de PHP (paquetes mod_php73, mod_php74 y mod_php80). Pero para que PHP pueda trabajar con el servicio de bases de datos también es necesario una extensión que se encuentra en el paquete phpXX-mysqli.
Instalación de los elementos de la pila FAMP en FreeBSD 11
Una vez que conocemos los elementos disponibles y cuáles son los que se ajustan a nuestras necesidades, bastará con elegir las versiones adecuadas. En este tutorial trabajaremos con versiones recientes de PHP y MariaDB:
~$ sudo pkg install -y apache24 php74-mysqli mod_php74 mariadb105-server
Pero de manera similar podríamos elegir la última versión de MySQL y la de PHP:
~$ sudo pkg install -y apache24 php80-mysqli mod_php80 mysql80-server
Iniciar los servicios
Tras la descarga e instalación de los paquetes anteriores y sus dependencias se crean dos nuevos servicios en FreeBSD 11, correspondientes al servidor web y al servidor de bases de datos. Estos servicios no quedan en ejecución ni habilitados para su inicio, por lo que debemos hacerlo manualmente.
Editamos el archivo rc.conf de FreeBSD 11:
~$ sudo nano /etc/rc.conf
Y añadimos al final del mismo las siguientes dos líneas:
... apache24_enable="YES" mysql_enable="YES"
Una vez guardados los cambios ya es posible arrancar los servicios, empezando por el servicio web, por ejemplo:
~$ sudo service apache24 start
Y a continuación el servicio de bases de datos:
~$ sudo service mysql-server start
Configurar los elementos
Para que el servicio web pueda trabajar con PHP crearemos un archivo de configuración:
~$ sudo nano /usr/local/etc/apache24/Includes/php.conf
Con el siguiente contenido:
<IfModule dir_module> DirectoryIndex index.php </IfModule> <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch>
Creamos también el archivo de configuración de PHP, php.ini, a partir de uno de los ejemplos de configuración que ofrece el paquete, ya sea creando una copia o un enlace simbólico.
En el caso de trabajar con un entorno de desarrollo copiaremos o enlazaremos el archivo php.ini-development:
~$ sudo cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini
Y si se trata de un entorno de producción, haremos lo propio con el archivo php.ini-production:
~$ sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Un valor que puede resultar interesante configurar desde el primer momento es el de la zona horaria, para lo que editamos el nuevo archivo php.ini:
~$ sudo nano /usr/local/etc/php.ini
Buscamos la directiva correspondiente:
... ;date.timezone = ...
Habilitamos la directiva eliminando el carácter ; inicial y le damos el valor que nos interese:
... date.timezone = Europe/Madrid ...
Si no conoces el valor adecuado para la zona horaria que te interesa, puedes consultarlo en https://www.php.net/manual/es/timezones.php.
En el caso de haber instalado MariaDB como servicio de bases de datos conviene configurar la ubicación del archivo de socket, ya que puede variar la ubicación real al valor usado por defecto. Para ello buscaremos la directiva mysqli.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 le daremos el valor adecuado. Por ejemplo, para MariaDB 10.5 sería el siguiente:
... mysqli.default_socket = /var/run/mysql/mysql.sock ...
Terminados todos estos ajustes, recargamos la configuración del servicio web:
~$ sudo service apache24 reload
MariaDB
Si has elegido este servicio de bases de datos es interesante eliminar los usuarios anónimos conectando al servicio con el cliente mysql:
~$ sudo mysql
Y eliminando el que se conecta usando localhost:
> drop user ''@localhost;
Y también el que se conecta usando el nombre del sistema:
> drop user ''@freebsd11;
También existe una base de datos para pruebas que no es necesaria y podemos eliminar:
> drop database test;
Por último, el usuario root de MariaDB no tiene contraseña por defecto, así que si prefieres trabajar con contraseña este es un buen momento para crearla:
> alter user root@localhost identified by 'XXXXXXXX';
Y ya podemos salir del cliente de consola:
> exit
Ahora para acceder al servicio como root es necesario indicar la contraseña:
~$ mysql -u root -p Enter password: ... >
Por otro lado, es recomendable configurar el juego de caracteres del valor por defecto latin1 a utf8 ó utf8mb4 editando el correspondiente archivo de configuración:
~$ sudo nano /usr/local/etc/mysql/conf.d/server.cnf
Y en la sección server añadimos la siguiente línea:
... [server] ... character_set_server=utf8mb4 ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo service mysql-server restart
MySQL
La instalación por defecto de MySQL no incluye usuarios anónimos ni bases de datos de prueba. Igualmente el juego de caracteres por defecto está configurado como utf8mb4.
El usuario root no tiene contraseña por defecto, así que puede ser interesante crearla, para lo que conectamos al servicio con el cliente mysql:
~$ mysql -u root
Creamos la contraseña:
> alter user root@localhost identified by 'XXXXXXXX';
Salimos del cliente:
> exit
Ahora podemos volver a conectar, pero usando la contraseña que acabamos de crear:
~$ mysql -u root -p Enter password: ... >
Cómo probar la pila FAMP en FreeBSD 11
Para probar la pila FAMP en FreeBSD 11 podemos crear un sencillo script en PHP:
~$ sudo nano /usr/local/www/apache24/data/info.php
Con el contenido:
<?php phpinfo();
Guardamos los cambios y accedemos desde un navegador, indicando como URL la dirección IP, dominio, nombre DNS, localhost, etc. del servidor FreeBSD 11 añadiendo la ruta del archivo que acabamos de crear, /info.php en este caso:
Si hemos instalado PHP 8.0:
Esta prueba muestra que el servicio web funciona correctamente, trabajando con PHP. Además, entre la gran cantidad de información que se proporciona es posible comprobar que la extensión para MariaDB/MySQL está presente.
Conclusión
Ahora que sabes cómo instalar una pila o entorno FAMP en FreeBSD 11 ya puedes trabajar con potentes aplicaciones web, ya sea con tus propios desarrollos o aplicaciones y entornos de terceros.
¡Apoya comoinstalar.me!
¿Ya está lista la pila FAMP en tu máquina FreeBSD 11 gracias a nuestra guía? Si es así y quieres agradecérnoslo, puedes colaborar con una pequeña ayuda par el mantenimiento de este sitio o la creación de nuevos artículos y tutoriales invitándonos a un café:
O dejando una propina de 1 $ con PayPal:
¡Gracias!