GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar Joomla con Nginx y Let's Encrypt SSL en Debian 11

Joomla! es uno de los sistemas de gestión de contenido (CMS) más populares junto a WordPress. Con Joomla, puede crear blogs, foros de discusión y otros sitios web.

Es gratuito, de código abierto y funciona bien con casi cualquier servicio de alojamiento web, lo que lo convierte en uno de los más fáciles de instalar y usar.

Si aún no tiene alojamiento web, le recomendamos que instale Joomla en su sistema Debian o VPS local.

Aquí veremos cómo instalar Joomla con Nginx en Debian 11.

Requisitos

Instalar la pila LEMP

Siga los enlaces a continuación para instalar la pila LEMP en su sistema Debian para la instalación de Joomla.

Instalar EMP (Nginx, MariaDB y PHP) en Debian 11

Instalar extensiones de PHP

Use el comando apt para instalar las extensiones de PHP necesarias para Joomla.

sudo apt update

sudo apt install -y php-gd php-xmlrpc php-curl php-intl php-imagick php-mysql php-zip php-xml php-mbstring php-bcmath

Configurar los ajustes de PHP para Joomla

Joomla requiere algunas configuraciones de PHP como el directorio temporal de PHP, el tamaño máximo permitido para que los archivos cargados funcionen correctamente. Entonces, edite el php.ini archivo.

sudo nano /etc/php/7.4/fpm/php.ini

Luego, actualice los valores a continuación según sus requisitos.

output_buffering = off # Required for Joomla

upload_tmp_dir = "/tmp"

upload_max_filesize = 64M

post_max_size = 64M

Configurar el host virtual de Nginx para Joomla

Comenzaremos con la creación de un host virtual para una instalación de Joomla. Puede encontrar todos los archivos de configuración del host virtual de Nginx en /etc/nginx/conf.d directorio.

Normalmente, el archivo de host virtual contiene un nombre de dominio, número de puerto, raíz del documento, ubicación de registro, CGI rápido, etc.

Para este artículo, asumo lo siguiente:

Nombre de dominio:itzgeek.net, www.itzgeek.net
Número de puerto:80
Raíz del documento:/usr/share/nginx/www.itzgeek.net/html
Registros:/usr/share/nginx/www.itzgeek.net/logs

Primero, cree una configuración de host virtual.

sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

Luego, coloque el siguiente contenido en el archivo de configuración anterior. Deberá cambiar server_name según su requerimiento.

server {
	server_name itzgeek.net www.itzgeek.net;
	root /usr/share/nginx/www.itzgeek.net/html;

	index index.php index.html;

	access_log /usr/share/nginx/www.itzgeek.net/logs/access.log;
	error_log /usr/share/nginx/www.itzgeek.net/logs/error.log;

	# Prevent access to certain file extensions
	location ~\.(ini|log|conf)$ {
		deny all;
	}

	location ~ \.php$ {
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}

}

Cree un directorio raíz de documentos y registros.

sudo mkdir -p /usr/share/nginx/www.itzgeek.net/html/

sudo mkdir -p /usr/share/nginx/www.itzgeek.net/logs/

Verifique el archivo de configuración de Nginx con el siguiente comando.

sudo nginx -t

Si obtiene lo siguiente, significa que la configuración del host virtual es correcta.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reinicie los servicios Nginx y PHP-FPM.

sudo systemctl reload nginx php7.4-fpm

Instalar el certificado SSL de Let's Encrypt

Crear registro DNS

Vaya a su registrador de dominios y cree un registro DNS [A y CNAME (opcional si no desea usar el subdominio www)] para su dominio.

  1. Nombre de dominio que no es www (Ej. itzgeek.net)>> A punto de registro a la IP de su servidor
  2. www nombre de dominio (por ejemplo, www.itzgeek.net)>> CNAME punto de registro a itzgeek.net

Para esta demostración, creé dos registros para que mi sitio web de Joomla sea accesible en www.itzgeek.net.

Instalar cliente Certbot

El cliente de Certbot, que nos ayuda a generar e instalar el certificado SSL de Let's Encrypt, ahora está disponible como un paquete instantáneo para el sistema operativo Debian. Entonces, primero, instale snapd en su sistema.

sudo apt update

sudo apt install -y snapd

Luego, actualice snapd a la última versión.

sudo snap install core && sudo snap refresh core

Finalmente, instale el cliente Certbot usando el comando snap.

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Instalar certificado SSL

Usa el certbot comando para generar e instalar el certificado Let's Encrypt SSL para el servidor web Nginx.

sudo certbot --nginx
1. Ingrese la dirección de correo electrónico recibir notificación sobre renovación urgente y avisos de seguridad
2. Escribe Y y presiona Enter registrarse en el servidor ACME
3. Escriba Y o N para recibir correos electrónicos sobre noticias, campañas, boletines de EFF.
4. Certbot detectará automáticamente el dominio de Joomla y le pedirá permiso para activar HTTPS para su sitio web Joomla. Escriba 1 o los números apropiados separados por una coma en caso de que tenga varios sitios web.
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1. itzgeek.net
2: www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1,2

Espere a que se complete la instalación de SSL. Ahora podrá acceder al sitio web con HTTPS.

Nota: Si accede al sitio web ahora, obtendrá un error prohibido 403 porque aún debe colocar el archivo de instalación de Joomla.

Redirigir solicitudes HTTP que no sean www a www HTTPS con Nginx

Es posible que desee configurar el servidor Nginx para redirigir el tráfico desde el sitio HTTP que no es www al sitio WWW HTTPS, es decir, http://itzgeek.net>> https://www.itzgeek.net. Puede omitir esto si no usa www en su dominio.

Certificado SSL de renovación automática

El cliente de Certbot ahora incluye la renovación automática de certificados SSL a través de systemd. Por lo tanto, no tendrá que renovar los certificados manualmente.

Instalar Joomla con Nginx

Crear base de datos para la instalación de Joomla

Primero, inicie sesión en el servidor de base de datos MariaDB/MySQL.

sudo mysql -u root -p

Luego, cree la base de datos para la instalación de Joomla junto con el usuario y la contraseña de la base de datos.

CREATE DATABASE joomladb;

CREATE USER 'joomlauser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON joomladb.* TO 'joomlauser'@'localhost';

EXIT

Descargar paquete Joomla

Descargue la última versión del paquete de Joomla usando el siguiente comando en la terminal.

mkdir /tmp/joomla && cd /tmp/joomla

wget https://downloads.joomla.org/cms/joomla4/4-0-3/Joomla_4-0-3-Stable-Full_Package.tar.gz?format=gz -O Joomla_4-0-3-Stable-Full_Package.tar.gz

Luego, extraiga el archivo descargado.

tar -zxvf Joomla_4-0-3-Stable-Full_Package.tar.gz

Y luego, mueva los archivos al directorio raíz de documentos de su sitio web.

sudo mv * /usr/share/nginx/www.itzgeek.net/html/

Actualice la propiedad y un grupo del directorio del sitio de Joomla.

sudo chown -R www-data:www-data /usr/share/nginx/www.itzgeek.net/

Instalar Joomla CMS

Abra su navegador y visite el dominio de su sitio web de Joomla para realizar la instalación de Joomla.

https://tu-sitio-web-joomla

1. Seleccionar idioma para el instalador y escriba el Nombre del sitio para su sitio web de Joomla y luego haga clic en Configurar datos de inicio de sesión

2. Introduzca nombre, nombre de usuario, contraseña y dirección de correo electrónico del administrador de Joomla y luego haga clic en Configurar conexión de datos

3. Seleccione el tipo de base de datos como MySQL (PDO) y luego ingrese detalles de la base de datos de Joomla [Deje el prefijo de tabla y Cifrado de conexión tal como está] y luego haga clic en Instalar Joomla

4. Ahora recibirá ¡Felicitaciones! Su sitio Joomla está listo. Puede acceder al sitio web haciendo clic en Completar y abrir sitio o el back-end de Joomla haciendo clic en Complete &Open Admin. Si lo desea, también puede agregar un idioma adicional para el front-end y el back-end de su sitio web haciendo clic en Instalar idiomas adicionales.

5. Puede acceder al back-end de Joomla en cualquier momento yendo a https://your-joomla-website/administrator

Acceder al sitio web de Joomla

Ahora podrá acceder al sitio con su nombre de dominio.

https://tu-sitio-web-joomla

Conclusión

Eso es todo. Espero que hayas aprendido a instalar Joomla con Nginx en Debian 11.


Debian
  1. Instale Lets Encrypt and Secure Nginx con SSL/TLS en Debian 9

  2. Instale Automad CMS con Nginx y Lets Encrypt SSL en Debian 10

  3. Cómo instalar OpenCart con Nginx y Lets Encrypt en Debian 10

  4. Cómo instalar Drupal 9 con Nginx y Lets Encrypt SSL en Debian 10

  5. Cómo instalar Let's Encrypt SSL en Ubuntu 18.04 con Nginx

Cómo instalar Let's Encrypt SSL en Apache en Debian 11

Cómo instalar Drupal con Nginx y Let's Encrypt SSL en Debian 11

Cómo instalar Let's Encrypt SSL en Nginx en Debian 11

Cómo instalar WordPress con Nginx y Let's Encrypt SSL en Debian 11

Cómo instalar Nginx con Let's Encrypt TLS/SSL en Ubuntu 20.04

Cómo instalar Nginx con Let's Encrypt SSL en Fedora 35