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:

Asistente de instalación de MyBB

Comprueba la licencia de MyBB y haz clic en " Siguiente":

Licencia MyBB

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.

Comprueba los requisitos

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".

Configuración de la base de datos

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.

Crear tablas de la base de datos

En este paso, se insertan los datos por defecto en las tablas de la base de datos creadas anteriormente. Haz clic en " Siguiente".

Rellena las tablas

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ñadir tema

A continuación, configura los ajustes básicos como el nombre del foro, la URL, etc:

Configuración básica de la placa

Crea una cuenta de administrador de MyBB . Esta cuenta tiene permisos para todas las secciones del panel de control de administración.

Crear una cuenta de administrador

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:

Finaliza la configuración

Para acceder a la interfaz de administración, añade /admin a tu URL:

Acceso a MyBB

MyBB admin tendrá un aspecto similar al siguiente:

Foro MyBB

Y aquí está la captura de pantalla del frontend de MyBB:

El frontend de MyBB

Enhorabuena¡! Has instalado con éxito tu MyBB.

Enlaces

También te podría gustar...