Cómo instalar la pila FAMP (Apache / MySQL / PHP) en FreeBSD 12

La pila FAMP, que es similar a la pila LAMP en Linux, es una colección de software de código abierto que suele instalarse conjuntamente para que un servidor FreeBSD pueda alojar sitios y aplicaciones web dinámicas. FAMP es un acrónimo que significa FreeBSD(sistema operativo), Apache(servidor HTTP), MySQL/MariaDB(servidor de bases de datos) y PHP(lenguaje de programación para procesar contenido dinámico de PHP).

En este tutorial, configuraremos los componentes de una pila FAMP en un servidor FreeBSD 12.1 utilizando pkg, el gestor de paquetes de FreeBSD.

Requisitos

Antes de empezar esta guía, necesitarás lo siguiente

  • Un FreeBSD 12.1.
  • Un usuario con privilegios de root o el usuario sudo para realizar cambios de configuración.
  • Se recomienda una familiaridad básica con el sistema FreeBSD y la interfaz de línea de comandos.

Antes de empezar

Comprueba la versión de FreeBSD:

freebsd-version
# 12.1-RELEASE

Asegúrate de que tu sistema FreeBSD está actualizado:

freebsd-update fetch install
pkg update && pkg upgrade -y

Instala los paquetes necesarios:

pkg install -y sudo vim bash curl

Crea una nueva cuenta de usuario con tu nombre de usuario preferido. Nosotros utilizamos johndoe:

adduser

# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!

Ejecuta el comando visudo y descomenta la línea %wheel ALL=(ALL) ALL, para permitir a los miembros del grupo wheel ejecutar cualquier comando:

visudo

# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL

Ahora, cambia a tu usuario recién creado con su:

su - johndoe

NOTA: Sustituye johndoe por tu nombre de usuario.

Configura la zona horaria:

sudo tzsetup

Paso 1 – Instalación de Apache 2.4

El servidor web Apache es actualmente uno de los servidores web más populares del mundo. Es una excelente elección para alojar un sitio web.

Puedes instalar Apache utilizando el gestor de paquetes de FreeBSD, pkg. El gestor de paquetes te permite instalar la mayoría del software sin esfuerzo desde un repositorio mantenido por FreeBSD.

Para instalar Apache, emite el siguiente comando:

sudo pkg install -y apache24

Comprueba la versión:

httpd -v
# Server version: Apache/2.4.41 (FreeBSD)

Ahora, activa e inicia Apache:

sudo sysrc apache24_enable=yes
sudo service apache24 start

Para comprobar que Apache se ha iniciado puedes ejecutar la siguiente orden:

sudo service apache24 status

Como resultado, verás algo similar a:

# Output
apache24 is running as pid 17775.

Puedes comprobar que Apache se ha instalado y funciona sin errores visitando la dirección IP pública de tu servidor en tu navegador web. Accede a http://your_server_IP. Verás la página predeterminada«¡Funciona!» de Apache.

Paso 2 – Instalación de MySQL 8.0

Ahora que tienes tu servidor web en funcionamiento, es el momento de instalar MySQL, el sistema de gestión de bases de datos relacionales. El servidor MySQL organizará y proporcionará acceso a las bases de datos en las que tu servidor puede almacenar información.

De nuevo, puedes utilizar pkg para obtener e instalar su software.

Para instalar MySQL 8.0 utilizando pkg, utiliza este comando:

sudo pkg install -y mysql80-client mysql80-server

Este comando instalará la última versión del cliente y del servidor MySQL, que actualmente es 8.x.x.

Comprueba la versión:

mysql --version
# mysql  Ver 8.0.17 for FreeBSD12.0 on amd64 (Source distribution)

Ahora, habilita e inicia MySQL:

sudo sysrc mysql_enable=yes
sudo service mysql-server start

Para comprobar que MySQL se ha iniciado puedes ejecutar el siguiente comando:

sudo service mysql-server status

Verás algo similar a lo siguiente:

# Output
mysql is running as pid 19171.

Como buena práctica, puedes ejecutar el script de seguridad mysql_secure_installation que eliminará algunos valores predeterminados inseguros y limitará ligeramente el acceso a tu sistema de base de datos:

sudo mysql_secure_installation

Se te pedirá que establezcas una contraseña, seguida de algunas otras preguntas. Introduce una contraseña fuerte y luego para el resto de las preguntas pulsa :key_enter: para seleccionar los valores predeterminados.

Paso 3 – Instalación de PHP 7.4

PHP es un lenguaje de scripting del lado del servidor diseñado para el desarrollo web. PHP es un componente indispensable de la pila FAMP. También se suele utilizar Python o Perl en lugar de PHP. Sin embargo, PHP es la opción más popular y la que más se utiliza. Junto con la base de datos, dará a tus sitios web o aplicaciones un comportamiento dinámico.

Una vez más, aprovecha el sistema pkg para instalar los componentes de PHP.

Para instalar PHP 7.4 con pkg, ejecuta este comando:

sudo pkg install -y php74 php74-mysqli mod_php74

Esto instala los paquetes php74, mod_php74, y php74-mysqli.

Comprueba la versión de PHP:

php --version

# PHP 7.4.1 (cli) (built: Jan  2 2020 01:32:38) ( NTS )
# Copyright (c) The PHP Group
# Zend Engine v3.4.0, Copyright (c) Zend Technologies

Copia el archivo de configuración de PHP de ejemplo en su lugar con este comando:

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Ahora, habilita e inicia PHP-FPM:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Para comprobar que PHP-FPM se ha iniciado puedes ejecutar el siguiente comando:

sudo service php-fpm status

Como resultado, verás algo similar a:

# Output
php_fpm is running as pid 23005.

Instalación de módulos PHP (opcional)

Para mejorar la funcionalidad de PHP, puedes instalar opcionalmente algunos módulos adicionales.

Para ver los módulos PHP actualmente compilados, puedes ejecutar esto:

php -m
# [PHP Modules]
# Core
# date
# libxml
# mysqlnd
# pcre
# Reflection
# SPL
# standard
# [Zend Modules]

Para buscar los módulos PHP disponibles, puedes utilizar este comando:

pkg search ^php74-*

Los resultados serán en su mayoría módulos de PHP 7.4 que puedes instalar:

# Output
# php74-7.4.0                    PHP Scripting Language
# php74-Ice37-3.7.2_1            Modern alternative to object middleware such as CORBA/COM/DCOM/COM+
# php74-aphpbreakdown-2.2.2      Code-Analyzer for PHP for Compatibility Check-UP
# php74-aphpunit-1.9             Testing framework for unit tests
# php74-bcmath-7.4.0             The bcmath shared extension for php
# php74-brotli-0.7.0             Brotli extension for PHP
# php74-bsdconv-11.5.0           PHP wrapper for bsdconv
# php74-bz2-7.4.0                The bz2 shared extension for php
# php74-calendar-7.4.0           The calendar shared extension for php
# php74-composer-1.8.6           Dependency Manager for PHP
# php74-ctype-7.4.0              The ctype shared extension for php
# php74-curl-7.4.0               The curl shared extension for php
# . . .

Si, después de buscar, decides que necesitas instalar un paquete, puedes hacerlo utilizando el comando pkg install. La mayoría de las aplicaciones web de PHP requerirán módulos adicionales, por lo que es bueno saber cómo buscarlos.

Paso 4 - Configurar Apache para usar el módulo PHP

Antes de usar PHP, debes configurarlo para que funcione con Apache.

Ejecuta sudo vim /usr/local/etc/apache24/modules.d/001_mod-php.conf y rellena el archivo con el siguiente contenido:

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

Guarda el archivo y sal de vim.

Comprueba la configuración de Apache:

sudo apachectl configtest

Como has hecho cambios de configuración en Apache, tienes que recargar el servicio para que se apliquen. De lo contrario, Apache seguirá funcionando con la configuración anterior:

sudo apachectl restart

Paso 5 - Probar el procesamiento de PHP

Para probar que tu sistema está configurado correctamente para PHP, puedes crear un script PHP muy básico. Llamarás a este script info.php. Por defecto, el DocumentRoot está configurado en /usr/local/www/apache24/data. Puedes crear el archivo info.php en esa ubicación escribiendo:

sudo vim /usr/local/www/apache24/data/info.php

Y añade este código a ese archivo:

<?php phpinfo(); ?>

Navega hasta http://your_server_IP/info.php y verás la siguiente página:

Información sobre PHP en FreeBSD 12

Después de la instalación y configuración de la pila FAMP, debes eliminar el archivo info.php para evitar revelar la información sobre el servidor al público:

sudo rm /usr/local/www/apache24/data/info.php

Conclusión

Enhorabuena, has instalado con éxito una pila FAMP en tu servidor FreeBSD 12.1. Ahora tienes varias opciones para saber qué hacer a continuación. Has instalado una plataforma que te permitirá instalar la mayoría de los tipos de sitios y software web sobre ella.

También te podría gustar...