Búsqueda de sitios web

Cómo instalar la pila Apache, MariaDB y PHP (FAMP) en FreeBSD


Esta guía describirá cómo instalar y configurar FBAMP en el sistema operativo FreeBSD, que es similar a una pila LAMP en Linux. FBAMP es un acrónimo que significa una colección de software basado en el sistema operativo FreeBSD, el servidor Apache HTTP, el servidor web de código abierto más popular en Internet, MariaDB< sistema de gestión de bases de datos relacionales (RDBMS), una bifurcación del motor de base de datos MySQL y PHP del lado del servidor.

Requisitos

  1. Una nueva instalación de FreeBSD
  2. Configuraciones iniciales de FreeBSD
  3. Acceso directo a consola o SSH en caso de conexión remota a FreeBSD.
  4. Una dirección IP estática configurada en una interfaz de red.

Paso 1: instale Apache en FreeBSD

1. El primer servicio que instalaremos es el servidor Apache HTTP. De forma predeterminada, FreeBSD ofrece múltiples versiones con diferentes módulos de trabajo en tiempo de ejecución para el servidor web Apache.

Las versiones están precompiladas en un paquete binario y proporcionadas por los repositorios FreeBSD PORTS. Para mostrar todos los archivos binarios de los paquetes de Apache proporcionados por PORTS, ejecute el siguiente comando.

ls /usr/ports/www/ | grep apache

También puede buscar paquetes de Apache precompilados disponibles en FreeBSD emitiendo el siguiente comando.

pkg search apache2

2. A continuación, instale la última versión del servidor HTTP Apache con todos los módulos necesarios emitiendo el siguiente comando.

pkg install apache24

3. Después de instalar el servidor web Apache en el sistema, ejecute el siguiente comando para habilitar el demonio en todo el sistema en FreeBSD.

sysrc apache24_enable="yes"

Un método alternativo para habilitar el demonio Apache sería editar y agregar manualmente la línea apache24_enable="yes" en el archivo /etc/rc.conf como se ilustra en la siguiente captura de pantalla.

4. Finalmente, para probar si el servidor web funciona correctamente, inicie el demonio Apache emitiendo el siguiente comando y visite la página web predeterminada apuntando un navegador a la dirección IP de su servidor FQDN ( http://IP-orFQDN) como se muestra en la siguiente captura de pantalla.

service apache24 start

El directorio raíz web predeterminado del servidor web Apache en FreeBSD 11.x se encuentra en la ruta del sistema /usr/local/www/apache24/data/. Allí encontrará un pequeño archivo index.html que puede editar según sus preferencias.

Paso 2: Instale PHP en FreeBSD

5. FreeBSD 11.x ofrece múltiples versiones de lenguaje del lado del servidor interpretado PHP empaquetado en archivos binarios precompilados. Para obtener una lista de todos los paquetes de versiones de PHP disponibles proporcionados por los repositorios de FreeBSD Ports, ejecute el siguiente comando.

ls /usr/ports/lang/ | grep php

Un método alternativo para buscar todas las versiones de paquetes PHP FreeBSD disponibles es ejecutar el siguiente comando.

pkg search -o php

6. Para buscar todos los archivos binarios disponibles proporcionados por FreeBSD para una versión de PHP específica (versiones 5 o 7 actualmente), ejecute los siguientes comandos. Utilice el comando less para restringir y navegar a través de la salida.

pkg search php5 |less
pkg search php7

7. Para ser más específico sobre qué módulos proporciona una versión PHP personalizada, ejecute el siguiente comando como se describe a continuación, que muestra todos los módulos disponibles para la versión PHP 7.1.

pkg search php71

8. En esta guía instalaremos la versión PHP 7.1 para nuestra pila FBAMP. Emita el siguiente comando para instalar PHP con algunos de los módulos más importantes necesarios para una instalación típica de CMS.

pkg install php71 mod_php71 php71-mbstring php71-mcrypt php71-zlib php71-curl php71-gd php71-json 

9. A continuación, necesitamos crear el archivo de configuración php.conf para el servidor web Apache en /usr/local/etc/apache24/Includes/ . ruta del sistema con el siguiente contenido.

nano /usr/local/etc/apache24/Includes/php.conf

Agregue las siguientes líneas al archivo php.conf.

<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>

10. Para probar si la puerta de enlace PHP funciona como se esperaba con el servidor web Apache, cree un archivo PHP info.php en /usr/local/www/ ruta apache24/data/system, que es la ruta raíz del documento web predeterminada del servidor web Apache.

echo '<?php phpinfo();  ?>' | tee -a /usr/local/www/apache24/data/info.php

Reinicie el demonio Apache para aplicar los cambios.

service apache24 restart

A continuación, visite el siguiente URI en un navegador para ver el resumen de PHP.

http://IP-or-FQDN/info.php 

11. Para activar el archivo de configuración PHP ini para producción, ejecute los siguientes comandos. Puede modificar el archivo de producción php.ini para cambiar diversas configuraciones de PHP en su pila FBAMP.

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini-production.bakup
ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Paso 3: Instale MariaDB en FreeBSD

12. El último componente que falta para nuestra pila FBAMP es el servidor de base de datos MySQL. FreeBSD 11.x ofrece más de 1000 paquetes para diversas bases de datos.

Para mostrar qué componentes están disponibles para las bases de datos MariaDB o MySQL, ejecute los siguientes comandos. En esta guía instalaremos la base de datos MariaDB sobre MySQL (que ahora es propiedad de Oracle y la desarrolla activamente).

ls -al /usr/ports/databases/ | grep mariadb
pkg search -o mariadb
ls -al /usr/ports/databases/ | grep mysql
pkg search -o mysql5

13. En esta guía instalaremos la última versión del servidor de base de datos MariaDB en FreeBSD, que actualmente está representado por la versión del paquete binario mariadb102.

Ejecute el siguiente comando para instalar el servidor y cliente MariaDB y el módulo PHP 7.1 necesario para acceder a la base de datos a través de la puerta de enlace del servidor Apache.

pkg install mariadb102-server mariadb102-client php71-mysqli

14. A continuación, habilite el servidor MariaDB en todo el sistema e inicie el demonio de la base de datos ejecutando los siguientes comandos.

sysrc mysql_enable="yes" 
service mysql-server start

15. Para proteger la base de datos, ejecute mysql_secure_installation scrip. Utilice el siguiente extracto del script para reforzar MariaDB.

/usr/local/bin/mysql_secure_installation
Salida de muestra

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
 
Enter current password for root (enter for none):
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
 ... Success!
Cleaning up...
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

16. De forma predeterminada, el demonio MariaDB escucha las conexiones de red fuera del host local en el puerto 3306/TCP. Ejecute el comando netstat, lsof o sockstat para obtener el estado del socket MariaDB. Esta configuración es peligrosa y expone el servicio a ataques de la red externa.

lsof -i4 -i6
sockstat -4 -6

17. Si no necesita acceso remoto a MariaDB, asegúrese de que el demonio MariaDB escuche solo el host local, emitiendo el siguiente comando. Posteriormente, reinicie el servicio MariaDB para aplicar los cambios.

sysrc mysql_args="--bind-address=127.0.0.1"
service mysql-server restart
or
/usr/local/etc/rc.d/mysql-server restart

18. Nuevamente, ejecute el comando netstat, lsof o sockstat para enumerar el socket de red MariaDB. El socket debería vincularse y escuchar en localhost ahora, como se ilustra en la imagen a continuación.

lsof -i4 | grep mysql
netstat -an | grep 3306
sockstat -4 | grep 3306

19. Para probar la conectividad de la base de datos MariaDB desde la consola, ejecute el siguiente comando. Ingrese la contraseña raíz de MySQL cuando se le solicite y se mostrará una lista de bases de datos predeterminadas en la pantalla de su consola, como se ilustra en la imagen a continuación.

mysql -u root -p -e "show databases"

¡Eso es todo! Ha instalado correctamente el servidor web Apache con la base de datos MariaDB y el intérprete PHP en FreeBSD. Ahora puedes empezar a implementar un sitio web de WordPress en poco tiempo.

En el próximo tutorial discutiremos algunos temas avanzados de FPBAMP, como cómo habilitar y crear hosts virtuales Apache, habilitar el módulo de reescritura requerido por el archivo .htaccess para funcionar correctamente y cómo proteger las conexiones Apache usando un Certificado autofirmado o un Certificado gratuito ofrecido por la entidad Let's Encrypt.