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.