Cómo instalar Vanila Forum y asegurarlo con Let’s Encrypt en CentOS 8
Vanilla es un software de foro comunitario gratuito, de código abierto y flexible que puede utilizarse para construir tu propio sitio de foro. Es una solución de foro ligera y multilingüe que te ayuda a crear una comunidad en línea en cuestión de minutos. Está escrito en PHP y viene con muchos complementos y temas. Está repleto de funciones de primera calidad y es utilizado por las mejores marcas para atraer a los clientes, fidelizarlos y reducir los costes de asistencia.
En este tutorial, aprenderemos a instalar el foro Vanilla en CentOS 8 y a protegerlo con Let’s Encrypt SSL.
Requisitos previos
- Un servidor con CentOS 8.
- Una contraseña de root configurada en tu servidor.
Instalar el servidor LEMP
En primer lugar, tendrás que instalar el servidor web Nginx, el servidor de bases de datos MariaDB, PHP y otras extensiones PHP necesarias en tu sistema. Puedes ejecutar el siguiente comando para instalarlos todos:
dnf install nginx mariadb-server php php php-mysqlnd php-opcache php-xml php-xmlrpc php-gd php-mbstring php-json php-fpm php-curl php-pear php-openssl php-intl unzip -y
Después de instalar todos los paquetes, inicia el servicio de Nginx, PHP-FPM y MariaDB y permite que se inicien después de reiniciar el sistema con el siguiente comando:
systemctl start nginx
systemctl start php-fpm
systemctl start mariadb
systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb
Configurar la base de datos MariaDB
Antes de empezar, es una buena idea asegurar tu MariaDB. Puedes asegurarlo con el siguiente script:
mysql_secure_installation
Responde a todas las preguntas como se muestra a continuación:
Enter current password for root (enter for none): Set root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Después de asegurar la MariaDB, entra en el shell de MariaDB con el siguiente comando:
mysql -u root -p
Proporciona tu contraseña de root de MariaDB y crea una base de datos y un usuario para Vanilla con el siguiente comando:
MariaDB [(none)]> CREATE DATABASE vanilladb CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE USER 'vanilla'@'localhost' IDENTIFIED BY 'password';
A continuación, concede todos los privilegios a la base de datos Vanilla con el siguiente comando:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON vanilladb.* TO 'vanilla'@'localhost';
A continuación, vacía los privilegios y sal del intérprete de comandos MariaDB con el siguiente comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Descarga el Foro Vanilla
Puedes descargar la última versión estable del foro Vanilla desde su sitio web oficial con el siguiente comando:
wget https://open.vanillaforums.com/get/vanilla-core-3.3.zip
Una vez descargado, descomprime el archivo descargado con el siguiente comando:
unzip vanilla-core-3.3.zip
A continuación, mueve el directorio extraído al directorio raíz de la web Nginx con el siguiente comando:
mv package /var/www/html/vanilla
A continuación, cambia la propiedad del directorio vanilla a Nginx:
chown -R nginx:nginx /var/www/html/vanilla
Una vez que hayas terminado, puedes pasar al siguiente paso.
Configurar el pool de PHP-FPM
Por defecto, PHP-FPM está configurado para Apache. En este caso, utilizaremos Nginx como servidor web. Así que tendrás que configurar PHP-FPM para Nginx. Puedes hacerlo editando el archivo /etc/php-fpm.d/www.conf:
nano /etc/php-fpm.d/www.conf
Cambia las siguientes líneas:
user = nginx group = nginx
Guarda y cierra el archivo cuando hayas terminado. A continuación, crea un directorio de sesión para PHP y cambia su propiedad:
mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session
A continuación, reinicia el servicio PHP-FPM para aplicar los cambios:
systemctl restart php-fpm
Configurar Nginx para Vanilla
A continuación, crea un nuevo archivo de host virtual Nginx para servir al foro Vanilla.
nano /etc/nginx/conf.d/vanilla.conf
Añade las siguientes líneas:
server { listen 80; server_name vanilla.linuxbuz.com; root /var/www/html/vanilla; index index.php; location ~* /\.git { deny all; return 403; } location /build/ { deny all; return 403; } location /cache/ { deny all; return 403; } location /cgi-bin/ { deny all; return 403; } location /uploads/import/ { deny all; return 403; } location /conf/ { deny all; return 403; } location /tests/ { deny all; return 403; } location /vendor/ { deny all; return 403; } location ~* ^/index\.php(/|$) { fastcgi_split_path_info ^(.+\.php)(/.+)$; try_files $fastcgi_script_name =404; set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; fastcgi_index index.php; include fastcgi.conf; fastcgi_param SCRIPT_NAME /index.php; fastcgi_param SCRIPT_FILENAME $realpath_root/index.php; fastcgi_param X_REWRITE 1; fastcgi_pass unix:/var/run/php-fpm/www.sock; } location ~* \.php(/|$) { rewrite ^ /index.php$uri last; } location / { try_files $uri $uri/ @vanilla; } location @vanilla { rewrite ^ /index.php$uri last; } }
Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el servicio Nginx para aplicar los cambios:
systemctl restart nginx
Asegura Vanilla con Let’s Encrypt SSL
A continuación, tendrás que instalar la utilidad Certbot en tu sistema para descargar e instalar Let’s Encrypt SSL para tu sitio web de Vanilla.
Puedes instalar el cliente Certbot con el siguiente comando:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
A continuación, obtén e instala un certificado SSL para tu sitio web Vanilla con el siguiente comando:
certbot-auto --nginx -d vanilla.linuxbuz.com
El comando anterior instalará primero todas las dependencias necesarias en tu servidor. Una vez instalado, se te pedirá que proporciones una dirección de correo electrónico y que aceptes las condiciones del servicio, como se muestra a continuación:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx 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 vanilla.linuxbuz.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/vanilla.conf
Selecciona si quieres redirigir el tráfico HTTP a HTTPS o no, como se muestra a continuación:
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
Escribe 2 y pulsa Intro para continuar. Una vez que la instalación se haya completado con éxito, deberías obtener la siguiente salida:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/vanilla.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://vanilla.linuxbuz.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=vanilla.linuxbuz.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/vanilla.linuxbuz.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/vanilla.linuxbuz.com/privkey.pem Your cert will expire on 2020-06-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - 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
Configurar SELinux y Firewall
Por defecto, SELinux está activado en CentOS 8. Así que tendrás que configurarlo para tu sitio web del foro Vanilla.
Puedes configurar el SELinux con el siguiente comando:
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/vanilla
A continuación, permite los puertos 80 y 443 a través del cortafuegos con el siguiente comando:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Una vez que hayas terminado, puedes pasar al siguiente paso.
Accede al Foro Vanilla
Abre tu navegador web y visita la URL https://vanilla.linuxbuz.com. Serás redirigido a la siguiente página:
Proporciona los datos de tu base de datos, el título de la aplicación, el correo electrónico, el nombre de usuario del administrador, la contraseña y haz clic en el botón Continuar. Una vez finalizada la instalación, deberías ver el panel de control de Vanilla en la siguiente página:
Conclusión
Enhorabuena! has instalado con éxito el foro Vanilla en CentOS 8 con Let’s Encrypt SSL. Ahora puedes alojar tu propio sitio web de foro comunitario fácilmente. No dudes en preguntarme si tienes alguna duda.