Cómo instalar Textpattern CMS con Nginx en Debian 10

Textpattern es un sistema de gestión de contenidos PHP gratuito y de código abierto. Es bastante ligero, rápido y fácil de usar, a la vez que proporciona una personalización decente a través de temas y plugins. En esta guía, instalaremos Textpattern en una instancia fresca de Debian 10.

Requisitos

  • Un sistema Debian 10 nuevo en el que tengas acceso al usuario root o a cualquier usuario con privilegios sudo.
  • Un nombre de dominio registrado que apunte a tu servidor.

Si has iniciado sesión como usuario sudo, cambia a root para esta configuración:

sudo su -

Establece la variable de entorno $VISUAL a un editor de texto de tu preferencia. Por ejemplo, para utilizar nano:

echo "export VISUAL=nano" >> ~/.profile
. ~/.profile

Paso 1: Instalación del software necesario.

Actualiza la caché de paquetes de tu sistema:

apt update

A continuación, instala Nginx, PHP-FPM, las extensiones de PHP necesarias, MariaDB y certbot:

apt install -y nginx mariadb-server php-fpm php-xml php-mysql php-json php-mbstring php-zip certbot

Asegúrate de que los servicios Nginx y MariaDB están activados y en funcionamiento:

systemctl enable --now nginx.service mariadb.service

Paso 2: Descarga de Textpattern

Copia el enlace de descarga (en formato .tar.gz) de la última versión de textpattern desde sus Releases en Github y descárgalo en tu servidor con wget de la siguiente manera:

wget https://github.com/textpattern/textpattern/releases/download/4.7.3/textpattern-4.7.3.tar.gz

A continuación, descomprime el archivo y mueve el contenido a una ubicación dentro del directorio webroot:

tar -xzf textpattern*.tar.gz
rm textpattern*.tar.gz
mv textpattern* /var/www/html/textpattern

Paso 3: Configuración de la base de datos

Comienza ejecutando el script mysql_secure_installation para realizar las mejoras básicas de seguridad:

mysql_secure_installation

Responde a las preguntas como se muestra a continuación y asegúrate de elegir una contraseña segura para el usuario root:

Enter current password for root (enter for none): 
Set root password? [Y/n] y
New password: your_password
Re-enter new password: your_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

A continuación, crearemos una base de datos y un usuario que utilizará Textpattern. Accede al shell de MySQL con:

mysql -u root -p

Introduce tu contraseña de root, y luego emite las siguientes sentencias. Asegúrate de sustituir textpattern_user_password por una contraseña adecuada.

MariaDB [(none)]> CREATE DATABASE textpattern_db;
MariaDB [(none)]> CREATE USER textpattern_user IDENTIFIED BY 'textpattern_user_password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON textpattern_db.* TO textpattern_user;
MariaDB [(none)]> \q

Paso 4: Configuración de Nginx

En primer lugar, obtén un certificado SSL para tu dominio ejecutando el siguiente comando:

certbot certonly --webroot --webroot-path /var/www/html -d "your_domain" -m "[email protected]"

Suponiendo que tu dominio esté correctamente configurado, certbot obtendrá automáticamente un certificado que utilizaremos para configurar el HTTPS.

A continuación, desactiva el archivo de configuración del servidor Nginx por defecto:

rm /etc/nginx/sites-enabled/default

A continuación, abre un nuevo archivo de configuración en /etc/nginx/sites-available:

$VISUAL /etc/nginx/sites-available/textpattern

E introduce la siguiente configuración sensata, sustituyendo tu_dominio por tu nombre de dominio:

server {
  listen 80;
  #replace your_domain below
  server_name your_domain;
  return 301 https://$server_name$request_uri;
}
server {
  listen 443 ssl;
  #replace your_domain below
  server_name your_domain;
  root /var/www/html/textpattern;
  index index.php;
  ssl on;
  #replace your_domain below
  ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
  location ~* \.php$ {
    fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
  }
}

Ten en cuenta que esta configuración redirigirá todas las peticiones HTTP a HTTPS. Es posible que quieras modificarla si tienes preferencias o requisitos específicos. Una vez que estés satisfecho con ella, crea un enlace simbólico en el directorio sites-enabled:

ln -s /etc/nginx/sites-available/textpattern /etc/nginx/sites-enabled/

A continuación, comprueba si hay errores de sintaxis con:

nginx -t

Por último, emite el siguiente comando para cargar la nueva configuración:

systemctl reload nginx.service

Paso 5: Configuración de Textpattern

Tu instalación de Textpattern debería ser ahora accesible, pero aún no está configurada. Accede a https://your_domain/textpattern/setup/ para iniciar el instalador web. Después de elegir un idioma, introduce los datos de la base de datos:

  • Nombre de usuario de MySQL: textpattern_user
  • Contraseña de MySQL: Introduce la contraseña elegida para textpattern_user durante el paso 2.
  • Servidor MySQL: localhost
  • Base de datos MySQL: textpattern_db
  • Prefijo de la tabla: déjalo en blanco

El instalador comprobará las credenciales de la base de datos introducidas antes de generar la configuración correspondiente. Crea el archivo necesario:

$VISUAL /var/www/html/textpattern/textpattern/config.php

Pega la configuración generada, guarda el archivo y sal. Pasa al siguiente paso del instalador web, donde se te pedirá que introduzcas la información de la cuenta de administrador del CMS y la configuración del sitio. Una vez hecho esto, elimina el directorio de configuración:

rm -rf /var/www/html/textpattern/textpattern/setup

Y dale al usuario del sistema Nginx la propiedad de los directorios a los que Textpattern necesita acceso de escritura:

chown -R www-data /var/www/html/textpattern/{files,images,themes}

Tu sitio de Textpattern ya está listo para ser utilizado. Puedes acceder a la interfaz de administración en https://your_domain/textpattern.

Más información

También te podría gustar...