Este sitio muestra anuncios que pueden estar patrocinando el contenido u ofreciendo enlaces de afiliados

Optimizando tu Entorno Web: Beneficios de Instalar Nginx, MariaDB, PhpMyAdmin y PHP 8.2

En la construcción de un entorno web robusto y eficiente, la elección de las tecnologías adecuadas es crucial. En este artículo, exploraremos las ventajas y beneficios de instalar Nginx, MariaDB, PhpMyAdmin y PHP 8.2. Estas tecnologías, combinadas, ofrecen un rendimiento sólido, seguridad y una gestión eficaz de bases de datos y servidores web.

Nginx: Optimización de Servidores Web

  1. Rendimiento Mejorado:
    • Nginx es conocido por su arquitectura de eventos, lo que le permite manejar múltiples conexiones simultáneamente con eficiencia y bajo consumo de recursos, proporcionando un rendimiento superior en comparación con servidores web tradicionales como Apache.
  2. Escalabilidad Horizontal:
    • Su enfoque ligero y modular permite una fácil escalabilidad horizontal. Puedes distribuir la carga entre varios servidores Nginx para manejar un mayor tráfico sin sacrificar el rendimiento.
  3. Manejo Eficiente de Solicitudes Estáticas y Dinámicas:
    • Nginx es ideal para servir archivos estáticos y actuar como proxy inverso para aplicaciones dinámicas, proporcionando un equilibrio óptimo entre velocidad y funcionalidad.

MariaDB: Potencia y Rendimiento en Bases de Datos

  1. Compatibilidad con MySQL:
    • MariaDB es un fork de MySQL, lo que significa que mantiene una alta compatibilidad con aplicaciones y scripts diseñados para MySQL, facilitando la transición y ofreciendo las mismas características avanzadas.
  2. Mejora del Rendimiento:
    • MariaDB incluye mejoras de rendimiento sobre MySQL, como el motor de almacenamiento Aria y el optimizador de consultas mejorado, lo que resulta en una ejecución más rápida de las consultas y una mayor eficiencia.
  3. Mayor Disponibilidad y Escalabilidad:
    • MariaDB incorpora características avanzadas de replicación y clustering que mejoran la disponibilidad y la escalabilidad, permitiendo implementaciones de bases de datos distribuidas y sistemas tolerantes a fallos.

PhpMyAdmin: Interfaz Gráfica para la Administración de Bases de Datos

  1. Gestión Intuitiva:
    • PhpMyAdmin proporciona una interfaz gráfica de usuario fácil de usar para la administración de bases de datos MySQL y MariaDB, lo que facilita la creación, modificación y gestión de bases de datos sin necesidad de conocimientos avanzados de SQL.
  2. Importación y Exportación de Datos:
    • Facilita la importación y exportación de datos a través de una interfaz intuitiva, lo que simplifica tareas como la migración de bases de datos y la transferencia de datos entre entornos.
  3. Gestión de Usuarios y Privilegios:
    • Permite la gestión detallada de usuarios y privilegios, asegurando un control preciso sobre el acceso a la base de datos y cumpliendo con los principios de seguridad.

PHP 8.2: Mejoras en Rendimiento y Funcionalidades

  1. Rendimiento Optimizado:
    • PHP 8.2 presenta mejoras significativas en el rendimiento, lo que resulta en tiempos de ejecución más rápidos y una mayor eficiencia en la gestión de recursos, contribuyendo a la velocidad general de las aplicaciones web.
  2. Nuevas Características y Sintaxis Mejorada:
    • Introduce nuevas funciones y características, así como mejoras en la sintaxis que facilitan el desarrollo y la mantenibilidad del código, promoviendo las mejores prácticas de programación.
  3. Seguridad Reforzada:
    • PHP 8.2 incluye actualizaciones de seguridad y correcciones de errores que mejoran la estabilidad y protección del entorno de ejecución PHP, reduciendo las vulnerabilidades y riesgos de seguridad.

Beneficios de Integrar Estas Tecnologías:

  1. Rendimiento Óptimo:
    • La combinación de Nginx, MariaDB, PhpMyAdmin y PHP 8.2 ofrece un entorno altamente optimizado, mejorando la velocidad y la eficiencia de tus aplicaciones y sitios web.
  2. Seguridad Robusta:
    • Estas tecnologías están respaldadas por comunidades activas y actualizaciones frecuentes, lo que contribuye a un entorno seguro y resistente a las amenazas.
  3. Gestión Efectiva de Bases de Datos:
    • PhpMyAdmin simplifica la administración de bases de datos, permitiendo una gestión eficiente de esquemas, tablas y usuarios.
  4. Compatibilidad y Facilidad de Uso:
    • La compatibilidad entre MariaDB y MySQL, junto con la interfaz gráfica de PhpMyAdmin, facilita la migración y administración de bases de datos.

Conclusión:

La integración de Nginx, MariaDB, PhpMyAdmin y PHP 8.2 ofrece un entorno web poderoso y eficiente. Desde la velocidad y escalabilidad hasta la administración de bases de datos y el rendimiento del código, estas tecnologías trabajan en conjunto para proporcionar una base sólida para tus proyectos web. Considera la implementación de estas herramientas para aprovechar al máximo tus recursos y mejorar la experiencia tanto para los desarrolladores como para los usuarios finales. ¡Optimiza tu entorno web y potencia tus aplicaciones con estas tecnologías avanzadas!

Como Instalar Nginx MariaDB PhpMyAdmin Php8.2 Paso a Paso

Desde la consola UNIX de tu máquina virtual:

Accede como Super Usuario

sudo su

Install wget para descargar archivos

apt-get install wget unzip zip

Para ver los enlaces simbólicos:

alias ll="ls -al"

Instala wget package

apt update
apt upgrade
apt install wget

Instala Nginx

apt install nginx
systemctl start nginx.service
systemctl enable nginx.service

Setup Firewall

apt install ufw
ufw app list
ufw allow 'Nginx Full'
ufw allow 'Nginx HTTP'
ufw allow 'Nginx HTTPS'
ufw default allow outgoing
ufw default deny incoming
cat /etc/default/ufw
ufw allow ssh
ufw limit ssh
ufw enable
systemctl status ufw.service
ufw status

Para salir presiona letra: q

Revisar instalación Nginx

systemctl status nginx

Para salir presiona letra: q

Instalar un SWAP

swapon --show
free -h
df -h
fallocate -l 8G /swapfile
ls -lh /swapfile
chmod 600 /swapfile
ls -lh /swapfile
mkswap /swapfile
swapon /swapfile
swapon --show
free -h
cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
cat /proc/sys/vm/swappiness
sysctl vm.swappiness=10
cat /proc/sys/vm/vfs_cache_pressure
vi /etc/sysctl.conf

Para insertar, presiona tecla i y agregar el siguiente texto hasta abajo:

vm.swappiness=10
sysctl vm.vfs_cache_pressure=50

Para Salir y guardar presiona: ESC y luego escribe :wq y presiona tecla Enter

systemctl restart nginx
nano /etc/nginx/nginx.conf

Agregar después de http la siguiente línea:

client_max_body_size 5000M;

Después guardar con «Ctrl O» y enter

Salir «Ctrl X» y enter

/sbin/nginx -s reload

Instala PHP 8.2

apt update
apt upgrade
apt install lsb-release apt-transport-https ca-certificates software-properties-common
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt update
apt install nginx php8.2-fpm
vi /etc/nginx/nginx.conf

Para insertar, presiona tecla i y agrega el siguiente texto dentro del bloque de http:

server {
listen 80;
root /var/www/;
index index.php index.html;
    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }
       }
fastcgi_read_timeout 30000;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
proxy_read_timeout 6000s;
large_client_header_buffers 4 128k;

También modificar client_max_body_size de 5000 a:

client_max_body_size 50000M;

Guardar: Presiona ESC y escribe :wq y presiona tecla Enter

Para ver si está bien:

nginx -t
php-fpm8.2 -v
apt install php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-opcache php8.2-soap php8.2-zip php8.2-redis php8.2-intl -y

Editar el archivo php.ini

nano /etc/php/8.2/fpm/php.ini

Consejo: buscar (Ctrl W) y pegar con clic derecho

Modificar lo siguiente:

upload_max_filesize = 32000M
post_max_size = 64000M (tiene que ser mayor que el upload_max_filesize)
memory_limit = 128000M (tiene que ser mayor que el post_max_size)
max_execution_time = 300000
max_input_time = 1000
max_input_vars = 10000

Guarda: Ctrl O y tecla Enter

luego salir: Ctrl X y tecla Enter

service php8.2-fpm restart
php-fpm8.2 -t

Creando archivo de información

vi /var/www/html/info.php

Para insertar presiona tecla i y dentro poner:

<?php phpinfo( ); ?>

Guardar y salir: Tecla ESC y escribir :wq y luego tecla Enter

nano /etc/php/8.2/fpm/pool.d/www.conf

Descomentar (quitar el símbolo: #):

request_terminate_timeout = 30000

Guardar y salir: Ctrl O, enter, Ctrl X, enter

systemctl reload nginx
systemctl restart nginx
service php8.2-fpm reload
service php8.2-fpm restart
php-fpm8.2 -t

Instalar MariaDB

apt update
apt upgrade
apt show mariadb-server
apt install mariadb-server -y
mariadb-secure-installation
systemctl status mariadb

Cambia la contraseña de root por una difícil que puedas recordar y dale todo a

Para salir letra q

apt update
systemctl start mariadb
systemctl enable mariadb

Instalar PhpMyAdmin

Busca la versión más reciente en https://www.phpmyadmin.net/ al día en que fue escrito este post es la versión 5.2.1

cd /var/www/html/
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip
unzip phpMyAdmin-5.2.1-all-languages.zip
mv phpMyAdmin-5.2.1-all-languages phpmyadmin
rm phpMyAdmin-5.2.1-all-languages.zip

Agregar el Blowfish. Para ello ve al sitio https://www.motorsportdiesel.com/tools/blowfish-salt/pma/ copia el código Blowfish

cd /var/www/html/phpmyadmin/
vi config.inc.php

Para insertar, presiona tecla i y pega el Blowfish que copiaste del sitio web. Para pegar usa tecla CTRL y clic derecho al mismo tiempo

Guardar y salir: Tecla ESC y escribir :wq y luego tecla Enter

chown -R www-data:www-data /var/www
usermod -a -G www-data EL-NOMBRE-DE-USUARIO-DE-TU-COMPUTADORA
chmod -R 775 /var/www/
chmod g+s /var/www/
systemctl restart nginx
service nginx reload
nginx -t

Creando las bases de datos

mysql
CREATE DATABASE `misitio.com` CHARACTER SET utf8mb4 COLLATE utf8mb4_spanish_ci;
show databases;
exit

Archivos de configuración (.conf)

vi /etc/nginx/sites-available/default

Para insertar presiona tecla i borra todo lo que haya adentro. Para pegar usa tecla CTRL y clic derecho al mismo tiempo y pega dentro lo siguiente:

server {
	root /var/www/misitio.com;
	index index.php index.html;
	server_name misitio.com;
	location / {
               try_files $uri $uri/ /index.php?$args;
	}
	
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/run/php/php8.2-fpm.sock;
	}
	
	location ~ /\.ht {
		deny all;
	}
}
<?php phpinfo( ); ?>

Guardar y salir: Tecla ESC y escribir :wq y luego tecla Enter

Modifica los permisos y date autoridad, pon tu usuario, este es el mismo que el de tu computadora, lo puedes ver en la ventana de Unix

chown -R www-data:www-data /var/www
usermod -a -G www-data miUsuario
chmod -R 775 /var/www/
chmod g+s /var/www/
service apache2 restart