Cómo instalar el Foro ElkArte con Apache y Let’s Encrypt en Debian 10
ElkArte es un potente software de foros gratuito y de código abierto que te permite crear tu propia comunidad de foros en línea. Es una plataforma de foros sencilla, ligera y moderna, basada en PHP y que utiliza MySQL/MariaDB para almacenar sus datos. ElkArte viene con una gran cantidad de características que incluyen: Notificaciones, Me gusta para los mensajes, Borradores, Autoguardado, Arrastrar y soltar archivos adjuntos, Integración de vídeo para youtube, Publicación por correo electrónico, Medidas anti-spam mejoradas y muchas más.
En este tutorial, explicaremos cómo instalar ElkArte en un servidor Debian 10.
Requisitos
- Un servidor con Debian 10.
- Una contraseña de root en tu servidor.
Cómo empezar
Antes de empezar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:
apt-get update -y
apt-get upgrade -y
Una vez actualizado tu servidor, reinicia tu servidor para aplicar los cambios.
Instalar Apache, MariaDB y PHP
En primer lugar, tendrás que instalar en tu servidor web Apache, el servidor de bases de datos MariaDB, PHP y otras librerías necesarias. Puedes instalarlos todos ejecutando el siguiente comando:
apt-get install apache2 mariadb-server php libapache2-mod-php php-common php-curl php-intl php-mbstring php-xmlrpc php-mysql php-gd php-pgsql php-xml php-cli php-imagick php-bcmath php-gmp php-zip unzip -y
Una vez instalados todos los paquetes, abre el archivo php.ini y modifica algunos ajustes:
nano /etc/php/7.3/apache2/php.ini
Cambia las siguientes líneas:
memory_limit = 256M upload_max_filesize = 100M max_execution_time = 360 date.timezone = America/Chicago
Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servidor web Apache con el siguiente comando:
systemctl restart apache2
Configurar la base de datos para ElkArte
A continuación, tendrás que crear una base de datos y un usuario para ElkArte. Para ello, entra en el shell de MariaDB con el siguiente comando:
mysql -u root -p
Proporciona tu contraseña de root cuando se te pida y luego crea una base de datos y un usuario con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE elkartedb;
MariaDB [(none)]> CREATE USER 'elkarte'@'localhost' IDENTIFIED BY 'password';
A continuación, concede todos los privilegios a ElkArte con el siguiente comando:
MariaDB [(none)]> GRANT ALL ON elkartedb.* TO 'elkarte'@'localhost' WITH GRANT OPTION;
A continuación, vacía los privilegios y sal del shell de MariaDB con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Una vez que hayas terminado, puedes pasar al siguiente paso.
Descargar ElkArte
En primer lugar, tendrás que descargar la última versión de ElkArte del repositorio Git. Para descargarla, ejecuta el siguiente comando:
wget https://github.com/elkarte/Elkarte/archive/master.zip
Una vez completada la descarga, descomprime el archivo descargado con el siguiente comando:
unzip master.zip
A continuación, mueve el directorio extraído al directorio raíz de la web de Apache:
mv Elkarte-master /var/www/html/elkarte
A continuación, cambia la propiedad del directorio elkarte y proporciona los permisos necesarios con el siguiente comando:
chown -R www-data:www-data /var/www/html/elkarte
chmod -R 755 /var/www/html/elkarte
Una vez que hayas terminado, puedes pasar al siguiente paso.
Crear un host virtual para ElkArte
A continuación, tendrás que crear un archivo de configuración del host virtual de Apache para servir a ElkArte. Puedes crearlo con el siguiente comando:
nano /etc/apache2/sites-available/elkarte.conf
Añade las siguientes líneas:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/html/elkarte ServerName example.com <Directory /var/www/html/elkarte/> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Guarda y cierra el archivo cuando hayas terminado. A continuación, activa el archivo de host virtual y el módulo de reescritura de Apache con el siguiente comando
a2ensite elkarte.conf
a2enmod rewrite
Por último, reinicia el servidor web Apache para aplicar los cambios:
systemctl restart apache2
Accede a la interfaz web de ElkArte
ElkArte ya está instalado y configurado. Es hora de acceder a la interfaz web de ElkArte.
Abre tu navegador web y escribe la URL http://example.com. Serás redirigido a la página de bienvenida de ElkArte:
Haz clic en el botón Continuar. Deberías ver la siguiente página:
Proporciona el nombre de tu base de datos, el nombre de usuario de la base de datos, la contraseña y haz clic en el botón Continuar. Deberías ver la siguiente página:
Proporciona el nombre de tu Foro, la URL del Foro y haz clic en el botón Continuar. Deberías ver la siguiente página:
Ahora, haz clic en el botón Continuar. Deberías ver la página de creación del administrador:
Proporciona el nombre de administrador que desees, la contraseña, el correo electrónico, la contraseña de la base de datos y haz clic en el botón Continuar. Una vez finalizada la instalación, deberías ver la siguiente página:
Ahora, haz clic en«tu foro recién instalado«. Deberías ver el panel de control de ElkArte en la siguiente página:
Asegura ElkArte con Let’s Encrypt
En primer lugar, tendrás que instalar Certbot en tu servidor. Certbot se utiliza para obtener un certificado SSL de Let’s Encrypt y configurar Apache para que utilice este certificado.
Por defecto, la última versión de Certbot no está disponible en el repositorio por defecto de Debian 10. Así que tendrás que añadir el repositorio de Certbot en tu servidor.
Primero, añade el repositorio de Certbot con el siguiente comando:
add-apt-repository ppa:certbot/certbot
Una vez añadido el repositorio, actualiza el repositorio e instala Certbot con el siguiente comando:
apt-get update -y
apt-get install certbot python-certbot-apache -y
Ahora Certbot está instalado y listo para ser utilizado.
Ejecuta el siguiente comando para obtener el certificado SSL para tu dominio:
certbot --apache -d example.com
En primer lugar, tendrás que proporcionar una dirección de correo electrónico válida y aceptar las condiciones del servicio, como se muestra a continuación:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Obtaining a new certificate Performing the following challenges: http-01 challenge for example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/example.com-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/example.com-le-ssl.conf Enabling available site: /etc/apache2/sites-available/example.com-le-ssl.conf Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
A continuación, elige la opción 2 para descargar e instalar el certificado SSL gratuito para tu dominio. Una vez que la instalación se haya completado con éxito. Deberías obtener la siguiente salida:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/example.com.conf to ssl vhost in /etc/apache2/sites-available/ example.com-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-10-22. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
¡Felicidades! tu ElkArte está ahora protegido con un certificado SSL. Ahora puedes acceder de forma segura visitando la URL https://example.com.