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:

Configuración de la base de datos

Ajustes de la aplicación

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:

Foro Vanilla en CentOS

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.

También te podría gustar...