LINUX

Cómo configurar el servidor web FreeBSD 11 con Nginx, Mysql, PHP 7.0 (PHP FPM)

Hemos estado ejecutando la pila LEMP, es decir, Nginx, MySQL y PHP en un sistema operativo basado en Linux, pero hoy instalaremos la pila FEMP en FreeBSD 11. FreeBSD es un sistema operativo gratuito y de código abierto tipo Unix basado en sistemas BSD. A diferencia de Linux, FreeBSD se desarrolla y mantiene como un sistema operativo completo desde el kernel, los controladores de dispositivo hasta las utilidades del área de usuario, mientras que Linux es un kernel con controladores de dispositivo. Nginx es un servidor web gratuito y de código abierto que es ampliamente conocido por su velocidad y capacidad de equilibrio de carga y almacenamiento en caché. Es uno de los servidores web y servidores proxy más populares que se utilizan en una gran cantidad de servidores. MySQL es un sistema de gestión de bases de datos relacionales de código abierto desarrollado y mantenido por Oracle, mientras que su versión gratuita y de código abierto, es decir, MariaDB, también está disponible en Internet. PHP es un lenguaje de scripting del lado del servidor que está escrito para el desarrollo web como un lenguaje backend desarrollado y mantenido por Zend Technologies. Y la combinación de Nginx, MySQL y PHP que se ejecuta en FreeBSD 11 se conoce como pila FEMP.

Prerrequisitos

En primer lugar, actualizaremos nuestro sistema operativo FreeBSD 11 a los últimos paquetes disponibles en los repositorios. Como el administrador de paquetes predeterminado de FreeBSD 11 es pkg, ejecutaremos el siguiente comando pkg para actualizar nuestro sistema usando el privilegio sudo.

% sudo freebsd-update fetch install

Instalación de Nginx

Una vez que nuestro sistema esté actualizado, instalaremos el servidor web Nginx en nuestra máquina FreeBSD 11. Para hacerlo, necesitaremos ejecutar el siguiente comando pkg bajo el privilegio sudo.

% sudo pkg install nginx

Instalación de MySQL

Luego, instalaremos el sistema de base de datos MySQL donde almacenaremos y recuperaremos datos para nuestra aplicación basada en web que ejecutaremos en la máquina. Para instalar el paquete del servidor MySQL, necesitaremos ejecutar lo siguiente.

% sudo pkg install mysql56-server

Instalación de módulos PHP 7.0

Ahora instalaremos todos los módulos necesarios de PHP 7.0 desde el repositorio oficial de FreeBSD para que se puedan ejecutar las aplicaciones web basadas en PHP que queremos ejecutar. Para instalar los módulos PHP requeridos, necesitaremos ejecutar el siguiente comando.

% sudo pkg install php70 php70-mysqli php70-xml  php70-gd php70-curl php70-zlib php70-zip php70-hash php70-tokenizer

Tenga en cuenta que los módulos instalados en este tutorial son los módulos php comunes, mientras que, dependiendo de los requisitos, es posible que necesite instalar módulos adicionales. Luego, copiaremos la configuración de php de muestra, es decir, /usr/local/etc/php.ini-production a /usr/local/etc/php.ini ejecutando el siguiente comando.

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

Abriremos el archivo /usr/local/etc/php.ini usando un editor de texto de la siguiente manera.

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

Luego, descomentaremos la línea cig.fix_pathinfo en php.ini y estableceremos el valor en 0 para evitar que los usuarios ejecuten códigos PHP arbitrarios.

cgi.fix_pathinfo=0

Una vez finalizada la edición, guardaremos el archivo y saldremos del editor de texto. A continuación, necesitaremos ejecutar el comando rehash para regenerar la información de la caché del sistema sobre nuestros archivos ejecutables instalados.

% rehash

Servicios habilitantes

Para habilitar los servicios nginx, php-fpm y mysql, ejecutaremos el siguiente comando sysrc como se muestra a continuación. Al habilitar los servicios, los demonios se ejecutarán automáticamente en cada inicio del sistema.

% sudo sysrc nginx_enable=yes mysql_enable=yes php_fpm_enable=yes

Una vez hecho esto, iniciaremos los demonios ejecutando el siguiente comando.

% sudo service nginx start
% sudo service mysql-server start
% sudo service php-fpm start

Configuración de PHP-FPM

Ahora, necesitaremos configurar PHP-FPM para usar un socket Unix en lugar de un puerto de red para la comunicación, ya que es más seguro que el puerto de red. Para hacerlo, necesitaremos hacer algunos cambios en el archivo de configuración php-fpm /usr/local/etc/php-fpm.d/www.conf usando un editor de texto.

% sudo nano /usr/local/etc/php-fpm.d/www.conf

Luego, haremos un comentario a la línea. escuchar = 127.0.0.1:9000 agregando un punto y coma, es decir ; antes de la línea. Una vez hecho esto, agregaremos la siguiente línea justo debajo.

listen = /var/run/php-fpm.sock

A continuación, descomentaremos la siguiente línea eliminando el punto y coma como.

listen.owner = www
listen.group = www
listen.mode = 0660

Una vez hecho esto, guardaremos el archivo y saldremos del editor de texto, luego reiniciaremos PHP-FPM ejecutando el siguiente comando.

% sudo service php-fpm restart

Configurar MySQL

Como aún no hemos configurado ninguna contraseña para el usuario root de nuestro servidor MySQL, aquí configuraremos una contraseña de root para él. Para hacerlo, necesitaremos ejecutar el siguiente comando.

% sudo mysql_secure_installation

Nos pedirá que ingresemos la contraseña de root para nuestro servidor MySQL, pero como no hemos establecido ninguna contraseña antes, simplemente presionaremos el botón Enter del teclado. Luego, se nos pedirá que configuremos una contraseña para nuestro usuario root de MySQL, aquí presionaremos Y y la ingresaremos. Luego, simplemente presionaremos el botón Enter en el teclado para establecer los valores predeterminados para las configuraciones adicionales.

Configuración de Nginx con PHP-FPM

Una vez que todo esté configurado, ahora configuraremos nuestro servidor web Nginx para ejecutar scripts php usando php-fpm. Para hacerlo, necesitaremos configurar la configuración de Nginx ubicada en /usr/local/etc/nginx/nginx.conf usando un editor de texto.

% sudo nano /usr/local/etc/nginx/nginx.conf

Una vez que se abre el editor de texto, necesitaremos establecer el valor de usuario como www y procesos_trabajadores como el número de CPU o núcleos que tiene su sistema. Esto se puede comprobar ejecutando sysctl hw.ncpu en la consola. Luego, necesitaremos configurar nuestro bloque de servidor {} como se muestra en la siguiente configuración de nginx.

user  www;
worker_processes  1; #No. of processors
error_log /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    access_log /var/log/nginx/access.log;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name linoxide.com www.linoxide.com;
        root /usr/local/www/nginx;
        index index.php index.html index.htm;

        location / {
            try_files $uri $uri/ =404;
        }

        error_page      500 502 503 504  /50x.html;
        location = /50x.html {
            root /usr/local/www/nginx-dist;
        }

        location ~ .php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+.php)(/.+)$;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                include fastcgi_params;
        }
    }
}

Una vez realizada la configuración, necesitaremos guardar y reiniciar nuestro servidor nginx. Podemos reiniciar nuestro servidor nginx ejecutando el siguiente comando.

% sudo service nginx restart

Pruebas

Ahora, para probar nuestra configuración FEMP en FreeBSD 11, crearemos un archivo de prueba llamado info.php en nuestro webroot usando un editor de texto.

% sudo nano /usr/local/www/nginx/info.php

Luego, escribiremos el siguiente código de prueba php que imprimirá toda la información PHP que nos demostrará que nuestra pila FEMP está configurada correctamente.

<?php phpinfo(); ?>

Ahora, abriremos un navegador web e intentaremos acceder al archivo info.php apuntando nuestro navegador a http: //ip-address/info.php o http://domain.com/info.php dependiendo de la configuración hecho. Si todo sale como se esperaba, deberíamos poder ver la siguiente pantalla en el navegador web.

FreeBSD 11 php nginx

Conclusión

La pila FEMP nos permite ejecutar muchas aplicaciones web en nuestra máquina con el sistema operativo FreeBSD 11. Este tutorial permite a todos instalar fácilmente Nginx, MySQL y PHP 7.0 en FreeBSD 11. Podemos ejecutar muchas aplicaciones como WordPress, Joomla, Drupal, PHP y sitios de construcción personalizados basados ​​en MySQL y muchas más. Esta es una configuración común en FreeBSD 11 para ejecutar sitios web en él. Podemos optimizar y ajustar las configuraciones de los servidores de aplicaciones para obtener el mejor rendimiento de acuerdo con las necesidades y requisitos. Por lo tanto, si tiene alguna pregunta, sugerencia o comentario, escríbalos en el cuadro de comentarios a continuación. Gracias ! Disfrutar 🙂

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar