Textpattern CMS met Nginx op Debian 10 installeren

Textpattern is een gratis en open-source PHP inhoud-beheersysteem. Het is tamelijk licht, snel en gemakkelijk te gebruiken, terwijl het een behoorlijke aanpasbaarheid biedt via thema’s en plugins. In deze gids installeren we Textpattern op een verse Debian 10 installatie.

Vereisten

  • Een vers Debian 10 systeem waarop je toegang hebt tot de root gebruiker of een andere gebruiker met sudo rechten.
  • Een geregistreerde domeinnaam die naar je server wijst.

Als je ingelogd bent als sudo gebruiker, schakel dan voor deze opstelling over naar root:

sudo su -

Stel de omgevingsvariabele $VISUAL in op een teksteditor van je voorkeur. Bijvoorbeeld om nano te gebruiken:

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

Stap 1: Vereiste software installeren.

Werk de pakket-cache op je systeem bij:

apt update

Installeer dan Nginx, PHP-FPM, de vereiste PHP uitbreidingen, MariaDB, en certbot:

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

Zorg ervoor dat de diensten Nginx en MariaDB ingeschakeld zijn en draaien:

systemctl enable --now nginx.service mariadb.service

Stap 2: Tekstpatroon downloaden

Kopieer de download link (in .tar.gz formaat) voor de nieuwste textpattern release van hun Releases op Github en download het als volgt naar je server met wget:

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

Pak dan het archief uit en verplaats de inhoud naar een plaats binnen de webroot directory:

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

Stap 3: Database opzetten

Begin met het draaien van het mysql_secure_installation script om basis beveiligingsverbeteringen uit te voeren:

mysql_secure_installation

Beantwoord de vragen zoals hieronder getoond en zorg ervoor dat je een veilig wachtwoord kiest voor de root gebruiker:

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

Vervolgens maken we een database en gebruiker aan die door Textpattern gebruikt zullen worden. Log in op de MySQL shell met:

mysql -u root -p

Geef je root wachtwoord in en voer dan de volgende statements uit. Zorg ervoor dat je textpattern_user_password vervangt door een juist wachtwoord.

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

Stap 4: Nginx configuratie

Haal eerst een SSL certificaat voor je domein door het volgende commando uit te voeren:

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

Ervan uitgaande dat je domein correct geconfigureerd is, zal certbot automatisch een certificaat verkrijgen dat we zullen gebruiken om HTTPS in te stellen.

Schakel vervolgens het standaard Nginx server configuratiebestand uit:

rm /etc/nginx/sites-enabled/default

Open dan een nieuw configuratiebestand onder /etc/nginx/sites-available:

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

En voer de volgende verstandige configuratie in, waarbij je je_domein vervangt door je domeinnaam:

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;
  }
}

Merk op dat deze configuratie alle HTTP verzoeken omleidt naar HTTPS. Misschien wil je hem aanpassen als je specifieke voorkeuren of eisen hebt. Als je er tevreden mee bent, maak je een symbolische link in de directory sites-enabled:

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

Controleer dan op eventuele syntaxfouten met:

nginx -t

Geef tenslotte het volgende commando om de nieuwe configuratie te laden:

systemctl reload nginx.service

Stap 5: Textpattern configuratie

Je Textpattern installatie zou nu toegankelijk moeten zijn, maar is nog niet geconfigureerd. Blader naar https://your_domain/textpattern/setup/ om het web-installatieprogramma te starten. Na het kiezen van een taal voer je de gegevens van de databank in:

  • MySQL gebruikersnaam: textpattern_user
  • MySQL wachtwoord: Voer het wachtwoord in dat bij stap 2 voor textpattern_user gekozen is.
  • MySQL server: localhost
  • MySQL database: textpattern_db
  • Tabel prefix: leeg laten

Het installatieprogramma controleert de ingevoerde databankgegevens voordat het de bijbehorende configuratie genereert. Maak het vereiste bestand:

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

Plak de gegenereerde configuratie, sla het bestand op en sluit af. Ga verder naar de volgende stap in het web-installatieprogramma, waar je gevraagd wordt informatie in te voeren voor de CMS beheerdersaccount en de site configuratie. Als dat gedaan is, verwijder je de setup directory:

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

En geef de Nginx systeemgebruiker eigenaarschap van de mappen waartoe Textpattern schrijftoegang nodig heeft:

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

Je Textpattern site is nu klaar voor gebruik. De beheerinterface is te bereiken op https://your_domain/textpattern.

Meer Informatie