Textpattern adalah sistem manajemen konten PHP free dan open-source yang ringan, cepat, dan mudah digunakan sambil memberikan kemampuan penyesuaian yang layak melalui tema dan plugin.

Dalam panduan ini, kita akan menginstal Textpattern pada instance Debian 10 yang baru.

Persyaratan

  • Sistem Debian 10
  • Memiliki akses ke user root atau user dengan hak akses sudo.
  • Nama domain terdaftar yang menunjuk ke server Anda.

Jika masuk sebagai user sudo, beralih ke user root untuk pengaturan ini:

sudo su -

Set $VISUAL environment variable ke editor teks pilihan Anda. Misalnya, untuk menggunakan text editor nano:

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

Langkah 1: Install Software yang Diperlukan.

Perbarui cache paket di sistem Anda:

apt update

Kemudian instal Nginx, PHP-FPM, ekstensi PHP yang diperlukan, MariaDB, dan certbot:

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

Pastikan layanan Nginx dan MariaDB diaktifkan dan berjalan:

systemctl enable --now nginx.service mariadb.service

Langkah 2: Download Textpattern

Pada saat penulisan ini, versi terbaru dari Textpattern adalah versi 4.7.3. Untuk melihat versi terbaru kunjungi halaman release Textpattern di Github dan download ke server Anda dengan perintah wget sebagai berikut:

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

Kemudian extract arsip dan pindahkan konten ke lokasi di dalam direktori webroot dengan perintah mv:

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

Langkah 3: Pengaturan Database

Mulai dengan menjalankan script mysql_secure_installation untuk melakukan peningkatan keamanan dasar:

mysql_secure_installation

Perintah ini akan mengubah kata sandi root, menghapus pengguna anonim, melarang login root dari jarak jauh dan menghapus database pengujian. Jawab pertanyaan seperti yang ditunjukkan di bawah ini dan pastikan untuk memilih kata sandi yang aman untuk pengguna root:

Enter current password for root (enter for none): 
Set root password? [Y/n] N
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

Setelah MariaDB diamankan, masuk ke shell MariaDB dengan perintah berikut:

mysql -u root -p

Berikan kata sandi root Anda, lalu buat database dan user database untuk Textpattern dengan perintah berikut:

MariaDB [(none)]> CREATE DATABASE textpattern_db;
MariaDB [(none)]> CREATE USER textpattern_user IDENTIFIED BY 'g4nt!_d3n9aN_P@$$w0rD';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON textpattern_db.* TO textpattern_user;
MariaDB [(none)]> \q

Langkah 4: Konfigurasi Nginx

Pertama, dapatkan sertifikat SSL untuk domain Anda dengan menjalankan perintah berikut:

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

Dengan asumsi domain Anda dikonfigurasikan dengan benar, certbot akan secara otomatis mendapatkan sertifikat yang akan kita gunakan untuk mengonfigurasi HTTPS.

Selanjutnya, nonaktifkan file konfigurasi server Nginx default:

rm /etc/nginx/sites-enabled/default

Kemudian buka file konfigurasi baru di /etc/nginx/sites-available:

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

Dan masukkan konfigurasi berikut ini, ganti nama_domain dengan nama domain Anda:

server {
  listen 80;
  #replace nama_domain below
  server_name nama_domain;
  return 301 https://$server_name$request_uri;
}
server {
  listen 443 ssl;
  #replace your_domain below
  server_name nama_domain;
  root /var/www/html/textpattern;
  index index.php;
  ssl on;
  #ganti nama_domain dibawah ini
  ssl_certificate /etc/letsencrypt/live/nama_domain/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/nama_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;
  }
}

Perhatikan bahwa konfigurasi di atas akan mengalihkan semua permintaan HTTP ke HTTPS. Anda mungkin ingin memodifikasinya jika memiliki preferensi atau persyaratan tertentu. Setelah selesai, buat symlink pengaturan textpattern di nginx ke sites-enabled:

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

Kemudian periksa apakah ada syntax errors dengan:

nginx -t

Terakhir, jalankan perintah berikut untuk memuat konfigurasi baru:

systemctl reload nginx.service

Langkah 5: Konfigurasi Textpattern

Instalasi Textpattern Anda sekarang harus dapat diakses tetapi belum dikonfigurasi. Buka web browser di alamat https://domain_anda/textpattern/setup/ untuk memulai web installer. Setelah memilih bahasa, masukkan detail database:

  • MySQL user name: textpattern_user
  • MySQL password: masukkan password database sesuai di langkah 3.
  • MySQL server: localhost
  • MySQL database: textpattern_db
  • Table prefix: biarkan kosong

Installer akan memeriksa kredensial database yang dimasukkan sebelum membuat konfigurasi yang sesuai. Buat file yang diperlukan:

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

Paste konfigurasi yang dihasilkan, simpan file dan keluar. Lanjutkan ke langkah berikutnya di web installer, tempat Anda akan diminta memasukkan informasi untuk akun administrator CMS dan konfigurasi situs. Setelah selesai, hapus direktori setup:

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

Dan berikan kepemilikan pada user sistem Nginx di direktori yang membutuhkan akses Textpattern:

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

Situs Textpattern Anda sekarang siap digunakan. Antarmuka administrasi dapat diakses di https://nama_domain/textpattern.