Cómo instalar Vanilla Forum en Debian 9
Vanilla es un foro de discusión gratuito y de código abierto escrito en PHP. El software del Foro Vanilla se distribuye bajo la licencia GNU GPL2. Su código fuente está disponible a través de Github. Tiene un rico sistema de complementos que puedes aprovechar para añadir funciones personalizadas a tu foro Vanilla. Elcontenido para Vanilla Forum puede escribirse utilizando el lenguaje Markdown.En este tutorial, te mostraré cómo instalar Vanilla Forum en Debian 9 utilizando Nginx como servidor web, MariaDB como servidor de base de datos y, opcionalmente, puedes asegurar la capa de transporte utilizando el cliente acme.sh y la autoridad de certificados Let’s Encrypt para añadir soporte SSL.
Requisitos
Vanilla requiere un servidor con PHP, MySQL y software de servidor web (como Apache o Nginx). Probablemente necesitarás tener un dominio y tenerlo ya configurado en tu servidor con DNS si quieres instalarlo en un servidor de producción, pero si no es así, no necesitas un dominio.
Los requisitos mínimosde Vanilla Forum son
- PHP versión 7.0 o más reciente.
- Extensiones PHP mbstring, cURL, GD y PDO,MySQLi, OpenSSL.
- MySQL versión 5.0 o más reciente (o el equivalente a Percona/MariaDB).
- Software de servidor web (Nginx, Apache…).
- Modo estricto de MySQL desactivado.
Vanilla Forum recomienda encarecidamente:
- PHP versión 7.2 o más reciente.
- Extensiones PHP mbstring, cURL, GD y PDO,MySQLi, OpenSSL.
- MySQL versión 5.7 o más reciente(o el equivalente de Percona/MariaDB).
- Software de servidor web (Nginx, Apache…).
- Encriptación SSL.
NOTA:PHP 7.0 ha llegado al final de su vida útil y ya no recibirá parches de seguridad, por lo que se recomienda encarecidamente utilizar versiones más recientes de PHP.¡El soporte de Vanilla para PHP 7.0 terminará pronto!
Requisitos previos
- Un sistema operativo con Debian 9.
- Un usuario no root con privilegios sudo.
Pasos iniciales
Comprueba tu versión de Debian:
lsb_release -ds
# Debian GNU/Linux 9.7 (stretch)
Configura la zona horaria:
sudo dpkg-reconfigure tzdata
Actualiza los paquetes de tu sistema operativo (software). Este es un primer paso importante porque garantiza que tienes las últimas actualizaciones y correcciones de seguridad de los paquetes de software por defecto de tu sistema operativo:
sudo apt update && sudo apt upgrade -y
Instala algunos paquetes esenciales que son necesarios para la administración básica del sistema operativo Debian:
sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https lsb-release ca-certificates dirmngr software-properties-common
Paso 1 – Instalar PHP y las extensiones PHP necesarias
Añade el nuevo repositorio a tu sistema para instalar una versión más reciente de PHP:
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update && sudo apt upgrade -y
Instala PHP, así como las extensiones PHP necesarias:
sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-curl php7.2-gd php7.2-mysql php7.2-json
Para mostrar el PHP compilado en módulos, puedes ejecutar:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Comprobar la versión de PHP:
php --version
# PHP 7.2.14-1+0~20190113100742.14+stretch~1.gbpd83c69 (cli) (built: Jan 13 2019 10:07:43) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.14-1+0~20190113100742.14+stretch~1.gbpd83c69, Copyright (c) 1999-2018, by Zend Technologies
El servicio PHP-FPM se inicia y habilita automáticamente al reiniciar el sistema Debian 9, por lo que no es necesario iniciarlo y habilitarlo manualmente. Podemos pasar al siguiente paso, que es la instalación y configuración de la base de datos.
Paso 2 – Instalar MariaDB y crear una base de datos para Vanilla Forum
Vanilla Forum admite bases de datos MySQL, MariaDB y Percona. En este tutorial, utilizaremos MariaDB como servidor de bases de datos.
Instala la versión 10.2 deMariaDB desde el repositorio oficial de MariaDB para Debian:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://mirrors.nxthost.com/mariadb/repo/10.2/debian stretch main'
sudo apt update
sudo apt install -y mariadb-server
Compruebala versión de MariaDB:
mysql --version
Ejecuta el scriptmysql_secure installation
para mejorar la seguridad deMariaDB y establece la contraseña del usuario deMariaDB root
:
sudo mysql_secure_installation
Responde a cada una de las preguntas:
Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_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
Conéctate al shell deMariaDB como usuario root:
sudo mysql -u root -p
# Enter password
Crea una base de datosMariaDB vacía y un usuario para Vanilla Forum y recuerda las credenciales:
mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'mypassword';
mariadb> FLUSH PRIVILEGES;
Sustituye la palabra mypassword por una contraseña segura de tu elección. Sal deMariaDB:
mariadb> exit
Sustituye dbname
, username
y password
por tus propios nombres.
Paso 3 – Instalar el cliente acme.sh y obtener el certificado Let’s Encrypt (opcional)
Asegurar tu sitio web con HTTPS no es necesario, pero es una buena práctica para asegurar el tráfico de tu sitio. Para obtener un certificado TLS de Let’s Encrypt utilizaremos el cliente acme.sh. Acme.sh es un software de shell Unix puro para obtener certificados TLS de Let’s Encrypt con cero dependencias.
Descarga e instala acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~
Comprueba la versión de acme.sh:
acme.sh --version
# v2.8.0
Obtén certificados RSA y ECC/ECDSA para tu dominio/nombre de host:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Si quieres certificados falsos para hacer pruebas, puedes añadir --staging
a los comandos anteriores.
Después de ejecutar los comandos anteriores, tuscertificados yclaves estarán en:
- Para RSA:
/home/username/example.com
directorio. - Para ECC/ECDSA: directorio
/home/username/example.com_ecc
.
Para listar tus certificados emitidos puedes ejecutar:
acme.sh --list
Crea un directorio para almacenar tus certificados. Utilizaremos el directorio/etc/letsencrypt.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Instalar/copiar los certificados en/etc/letsencryptdirectorio.
# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo systemctl reload nginx.service"
Todos los certificados se renovarán automáticamente cada 60 días.
Después de obtener los certificados sal del usuario root y vuelve al usuario sudo normal:
exit
Paso 4 - Instalar NGINX y configurar NGINX para Vanilla Forum
Vanilla Forum puede funcionar bien con muchos servidores web populares. En este tutorial, hemos seleccionado Nginx. Si prefieres el servidor web Apache en lugar de Nginx, visitahttps://docs.vanillaforums.com/developer/backend/server-apache/ para obtener más información.
Descarga e instala Nginx desde el repositorio de Debian:
sudo apt install -y nginx
Comprueba la versión de Nginx:
sudo nginx -v
Configura Nginx para Vanilla ejecutando:
sudo vim /etc/nginx/sites-available/vanilla.conf
Y rellena el archivo con la siguiente configuración:
server {
listen 80;
listen 443 ssl http2;
server_name forum.example.com;
root /var/www/vanilla;
index index.php;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECC
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
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(/|$) {
include snippets/fastcgi-php.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/php7.2-fpm.sock;
}
location ~* \.php(/|$) {
rewrite ^ /index.php$uri last;
}
location / {
try_files $uri $uri/ @vanilla;
}
location @vanilla {
rewrite ^ /index.php$uri last;
}
}
NOTA: Para una configuración completa y lista para producción de Nginx para Vanilla, visitahttps://docs.vanillaforums.com/developer/backend/server-nginx/.
Activa la nueva configuración de vanilla.conf
vinculando el archivo al directorio sites-enabled
.
sudo ln -s /etc/nginx/sites-available/vanilla.conf /etc/nginx/sites-enabled
Comprueba que la configuración de Nginx no tenga errores de sintaxis:
sudo nginx -t
Recarga el servicio Nginx:
sudo systemctl reload nginx.service
Paso 5 - Instalar Vanilla Forum
Crea un directorio raíz de documentos en el que deba residir Vanilla Forum:
sudo mkdir -p /var/www/vanilla
Cambia la propiedad del directorio /var/www/vanilla
a{your_user}. Replace the string {y
our_user} with the name of the Linux user that you are currently logged in, so when your username is e.g. johndoe, then replace '{y
our_user}' with 'johndoe'.
sudo chown -R {your_user}:{your_user} /var/www/vanilla
NOTA: Sustituye {jour_user}
por tu nombre de usuario no root creado inicialmente.
Navega hasta el directorio raíz del documento:
cd /var/www/vanilla
Descarga el archivo zip de Foro Vainilla:
wget https://open.vanillaforums.com/get/vanilla-core-2.8.1.zip
Extrae y elimina el archivo zip de Vanilla:
unzip vanilla-core-2.8.1.zip
rm vanilla-core-2.8.1.zip
mv vanilla-2.8.1/* . && mv vanilla-2.8.1/.* .
Proporciona la propiedad adecuada:
sudo chown -R www-data:www-data /var/www/vanilla
Navega a la carpeta donde subiste Vanilla en tu navegador web ysigue las instrucciones que aparecen en pantalla.
Paso 6 - Completa la instalación y configuración de Foro Vanilla
Tras abrir tu sitio en un navegador web, deberías ser redirigido a la siguiente página:
Rellena la información requerida y haz clic en el botón "Continuar→ " para finalizar la instalación y la configuración. Después debería aparecer la interfaz de administración de Vanilla Forum.