Cómo instalar el foro MyBB con Nginx y Let’s Encrypt en Debian 10
MyBB es un programa de foros gratuito y de código abierto, intuitivo y extensible. MyBB es sencillo de usar y ampliable con cientos de plugins y temas que hacen que añadir nuevas funciones o un nuevo aspecto sea fácil.
El código fuente de MyBB está alojado en GitHub. Este tutorial te mostrará cómo instalar el programa de foros MyBB en el sistema Debian 10 (buster).
Requisitos
MyBB 1.8 y el sistema de fusión 1.8 tienen unos requisitos mínimos del sistema:
- PHP, al menos la versión 5.2. PHP 7.3 muy recomendable.
- MySQL versión 5.0 o superior, PostgreSQL versión 8.1 o superior, o SQLite versión 3 o superior. PostgreSQL 10.0 o MySQL 8.0 son muy recomendables.
- Servidor web Apache, Nginx, Lighttpd o IIS
- También se necesitan las siguientes extensiones de PHP
- SimpleXML
- mbstring
- gd
- La respectiva extensión PHP de la base de datos específica del proveedor
NOTA: Sustituye todas las instancias de example.com
por tu nombre de dominio.
Requisitos previos
- Un sistema operativo Debian 10 (buster).
- Un usuario no root con privilegios en
sudo
.
Pasos iniciales
Comprueba tu versión de Debian:
lsb_release -ds
# Debian GNU/Linux 10 (buster)
Configura la zona horaria:
sudo dpkg-reconfigure tzdata
Actualiza los paquetes de tu sistema operativo (software). Este es un primer paso esencial porque te asegura 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
Paso 1 – Instalar PHP y las extensiones PHP necesarias
Instala PHP, así como las extensiones PHP necesarias:
sudo apt install -y php php-cli php-fpm php-gd php-mbstring php-xml php-mysql php-pgsql
Para mostrar el PHP compilado en módulos, puedes ejecutar:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Comprobar la versión:
php --version
# PHP 7.3.9-1~deb10u1 (cli) (built: Sep 18 2019 10:33:23) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies
El servicio PHP-FPM se inicia y habilita automáticamente al reiniciar el sistema Debian 10, por lo que no es necesario iniciarlo y habilitarlo manualmente. Podemos pasar al siguiente paso.
Paso 2 – Instalar el cliente acme.sh y obtener el certificado Let’s Encrypt ( opcional )
Asegurar tu foro 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 sencillo programa de shell de UNIX 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.2
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 probarlos, puedes añadir la bandera --staging
a los comandos anteriores.
Después de ejecutar los comandos anteriores, tus certificados y claves 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. Nosotros utilizaremos el directorio /etc/letsencrypt
.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Instala/copia los certificados en /etc/letsencrypt directorio.
# 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 certs sal del usuario root y vuelve al usuario sudo normal:
exit
Paso 3 - Instalar MariaDB y crear una base de datos para MyBB
Instala el servidor de base de datos MariaDB:
sudo apt install -y mariadb-server
Comprueba la versión de MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.3.17-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Ejecuta mysql_secure installation
script para mejorar la seguridad de MariaDB y establecer la contraseña para MariaDB root
usuario:
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 de MariaDB como usuario root:
sudo mysql -u root -p
# Enter password
Crea una base de datos MariaDB vacía y un usuario para el foro MyBB y recuerda las credenciales:
mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb> FLUSH PRIVILEGES;
Sal de MariaDB:
mariadb> exit
Sustituye dbname,
username
y password
por tus propios nombres.
Paso 4 - Instalar y configurar Nginx
Descarga e instala NGINX desde el repositorio de Debian:
sudo apt install -y nginx
Comprueba la versión de NGINX:
sudo nginx -v
# nginx version: nginx/1.14.2
Configura Nginx. Ejecuta sudo vim /etc/nginx/sites-available/mybb.conf
y rellena el archivo con lo siguiente.
server {
listen 80;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
server_name forum.example.com;
root /var/www/mybb;
location / {
index index.php;
}
# Deny access to internal files.
location ~ /(inc|uploads/avatars) {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Activa la nueva configuración de mybb.conf
vinculando el archivo al directorio sites-enabled
:
sudo ln -s /etc/nginx/sites-available/mybb.conf /etc/nginx/sites-enabled/
CompruebaNGINX en busca de errores de sintaxis:
sudo nginx -t
Recarga Nginx:
sudo systemctl reload nginx.service
Paso 5 - Instalar MyBB
Crea un directorio raíz de documentos:
sudo mkdir -p /var/www/mybb
Descarga la última versión de MyBB y descomprímela:
cd /var/www/mybb
sudo wget https://resources.mybb.com/downloads/mybb_1821.zip
sudo unzip mybb_1821.zip
sudo mv /var/www/mybb/Upload/* /var/www/mybb
Elimina el archivo .zip
descargado:
sudo rm mybb_1821.zip
sudo rmdir Upload
Cambia la propiedad del directorio /var/www/mybb
a www-data:
sudo chown -R www-data:www-data /var/www/mybb
Como último paso, abre tu dominio y sigue el asistente de instalación de MyBB. Para acceder al instalador debes navegar al directorio /install
de tu sitio en tu navegador web. Por ejemplo, si tu dominio es example.com
y has subido tus archivos de MyBB al directorio raíz, entonces navega a http://example.com/install
. Para acceder al administrador de MyBB, añade /admin
a la URL de tu sitio. Has instalado con éxito tu MyBB.
Después de la instalación, debes eliminar el directorio /install
de tu servidor para evitar que cualquier otra persona pueda volver a ejecutar la instalación.
sudo rm -rf /var/www/mybb/install/
Paso 6 - Completar la instalación de MyBB
Para acceder al instalador debes navegar al directorio install/
directorio de tu sitio en tu navegador web.
Después de abrir el asistente de instalación de MyBB, debería aparecer una página como esta. Todo lo que tienes que hacer es pulsar "Siguiente" en esta página:
Comprueba la licencia de MyBB y haz clic en " Siguiente":
Esta página comprueba que tu servidor cumple los requisitos para ejecutar MyBB. Si no lo hace, se te notificará en esta página. Si todo funciona correctamente, sólo tienes que hacer clic en el botón "Siguiente" de esta página.
Esta página es para la configuración de tu base de datos. Introduce los detalles de la base de datos solicitados y haz clic en " Siguiente".
En este paso se insertan las tablas de la base de datos. En esta página no es necesario que el usuario introduzca datos, así que haz clic en el botón "Siguiente" cuando aparezca.
En este paso, se insertan los datos por defecto en las tablas de la base de datos creadas anteriormente. Haz clic en " Siguiente".
En este paso se cargan los datos del tema en el foro. En esta página no es necesario que el usuario introduzca datos. Haz clic en el botón "Siguiente" cuando aparezca.
A continuación, configura los ajustes básicos como el nombre del foro, la URL, etc:
Crea una cuenta de administrador de MyBB . Esta cuenta tiene permisos para todas las secciones del panel de control de administración.
Tras la creación de la cuenta de administrador, verás la página "Finalizar la instalación". Esa página muestra que la instalación se ha completado:
Para acceder a la interfaz de administración, añade /admin a tu URL:
MyBB admin tendrá un aspecto similar al siguiente:
Y aquí está la captura de pantalla del frontend de MyBB:
Enhorabuena¡! Has instalado con éxito tu MyBB.