Konfigurasi WordPress pada Debian 12 dengan LAMP Stack

Kali ini penulis akan membagikan panduan mengenai konfigurasi WordPress pada sistem operasi Debian 12 menggunakan LAMP Stack (Linux, Apache, MySQL, PHP) sebelum memulai langkah langkahnya mari kita kenalan dulu dengan WordPress.

Apa itu WordPress

WordPress adalah platform manajemen konten (CMS) open-source yang populer untuk membuat dan mengelola situs web atau blog. WordPress mudah digunakan, memiliki tampilan yang intuitif, dan mendukung berbagai plugin serta tema situs. Dibangun dengan PHP dan MySQL, WordPress dapat digunakan untuk berbagai keperluan, mulai dari blog pribadi maupun situs e-commerce.

Apa itu LAMP Stack

LAMP Stack adalah kumpulan perangkat lunak open-source yang digunakan bersama untuk menjalankan aplikasi web. LAMP merupakan singkatan dari:

  1. Linux: Sistem operasi yang menjadi dasar untuk server.
  2. Apache: Web server yang menangani permintaan HTTP dan menampilkan konten web.
  3. MySQL/MariaDB: Sistem manajemen basis data (Database) untuk menyimpan informasi situs web, seperti konten dan pengguna.
  4. PHP: Bahasa pemrograman yang digunakan untuk memproses logika di sisi server (Backend) dan berinteraksi dengan database.

Tanpa berlama lagi selanjutnya adalah tahap konfigurasi Debian 12 sebagai server WordPress. pastikan anda mempunyai sambungan internet dan juga sistem operasi Debian 12 tentunya anda dapat menggunakan berbasis VM (Virtual Mesin) atau bare metal (Di komputer Fisik) saya asumsikan pada perangkat anda sudah terdapat Debian 12 yang sudah siap digunakan pada kali ini saya tidak akan menjelaskan langkah langkah Instalasi Debian 12

Konfigurasi Debian 12

Langkah pertama masuk ke terminal (mode CLI)

Selanjutnya ketik su – root perintah ini bertujuan menaikan privileges dari user biasa ke admin (root) masukan password root anda dalam hal ini password yang anda ketikan tidak akan terlihat.

Jika sudah menampilkan # maka anda telah memasuki mode root.

Tahap berikutnya adalah pengecekan alamat ip untuk memastikan debian anda telah mempunyai alamat ip dengan cara ketik perintah `ip a`

Konfigurasi Repository

Repository Debian adalah sumber software yang berisi berbagai paket (software) yang dapat diinstal pada sistem operasi Debian. Repositori ini diorganisir dalam beberapa kategori berdasarkan stabilitas dan tipe paket, seperti:

  • Main: Berisi perangkat lunak bebas yang sepenuhnya sesuai dengan kebijakan lisensi Debian.
  • Contrib: Berisi perangkat lunak bebas yang membutuhkan komponen non-bebas (seperti driver).
  • Non-free: Berisi perangkat lunak yang tidak sepenuhnya bebas, namun tetap disediakan untuk pengguna.

Setiap versi Debian memiliki repositori yang menyediakan paket-paket versi stabil, pengembangan, dan backport. Pengguna dapat mengakses repositori ini melalui internet untuk mengunduh dan memperbarui software dengan perintah seperti apt update dan apt upgrade namun terdapat masalah karena secara default Debian juga mempunyai repository offline berbasis cd dan akan menimbulkan error ketika melakukan update paket maka cara mengatasinya adalah dengan cara menonaktifkan baris script yang berfungsi untuk melakukan scanning terhadap cd yaitu dengan caraCopy

nano /etc/apt/sources.list

lalu tekan enter maka akan terlihat seperti gambar di bawah ini

berikan tanda pagar (#) pada baris deb cdrom menjadi seperti gambar di bawah ini

lalu untuk menyimpan konfigurasi ketik ctrl + x + y + enter

Maka akan kembali ke halaman utama.

Instalasi Paket

Selanjutnya ketik `apt update` untuk memperbarui paket software pada sistem Debian.

Namun pada sistem Debian penulis semua paket telah yang paling baru di tandai dengan All packages are up to date.

selanjutnya install paket yang di butuhkan dengan cara ketikCopy

apt install apache2 mariadb php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-mysql

Pada tahap ini kita menginstall sebuah web server (Apache2) , database (mariadb) , PHP (bahasa pemrograman untuk wordpress) tapi juga terdapat beberapa komponen tambahan untuk fungsi fungsi pada WordPress berikut adalah keterangannya.

PaketDeskripsi
php-curlMengizinkan PHP untuk melakukan permintaan HTTP, seperti GET dan POST, ke URL eksternal.
php-gdMenyediakan fungsi untuk manipulasi gambar, seperti membuat dan mengedit gambar.
php-mbstringMenyediakan dukungan untuk pemrosesan string multibahasa dan karakter multibyte.
php-xmlMenyediakan fungsi untuk memproses dan mengelola file XML dalam aplikasi PHP.
php-xmlrpcMemungkinkan komunikasi antara server dan klien menggunakan protokol XML-RPC.
php-soapMenyediakan dukungan untuk membuat dan mengonsumsi layanan web menggunakan protokol SOAP.
php-intlMenyediakan dukungan internasionalisasi, termasuk format angka dan tanggal sesuai lokal.
php-zipMenyediakan kemampuan untuk mengelola file ZIP, termasuk membuat dan mengekstrak arsip ZIP.
php-mysqlMenyediakan dukungan untuk menghubungkan dan berinteraksi dengan database MySQL.

Lalu tekan Y / enter untuk melakukan proses instalasi paket.

Tunggu hingga semua paket terinstall.

Pengujian Web Server Apache2

Apache2 adalah salah satu web server open-source paling populer yang digunakan untuk menyajikan situs web. Apache bekerja dengan mendengarkan permintaan HTTP dari klien (browser) dan mengirimkan respons dalam bentuk halaman web.

Pada Debian atau Ubuntu, konfigurasi Apache2 disimpan di beberapa direktori penting:

  • /etc/apache2/apache2.conf: File konfigurasi utama Apache2.
  • /etc/apache2/sites-available/: Menyimpan file konfigurasi untuk setiap situs virtual host, tetapi tidak aktif secara default.
  • /etc/apache2/sites-enabled/: Berisi symlink dari file di sites-available yang telah diaktifkan (menggunakan a2ensite).
  • /etc/apache2/mods-available/ dan mods-enabled/: Berisi modul Apache yang tersedia dan diaktifkan.
  • /var/www/html/: Direktori default tempat menyimpan file situs web yang disajikan oleh Apache.

Dengan Apache, Anda dapat mengatur beberapa situs web pada satu server menggunakan Virtual Hosts.

Selanjutnya lakukan pengujian untuk memastikan bahwa web server telah terinstall dengan cara buka browser (Chrome, Firefox , Edge , Safari dan lain lain) pada tahap ini penulis menggunakan Firefox.

Lalu masukan alamat ip dari server Debian.

Hingga muncul halaman default web server Apache2, pada tahap ini anda telah berhasil mempunyai sebuah web server.

Pengujian PHP

PHP (Hypertext Preprocessor) adalah bahasa pemrograman server-side (sisi server) yang digunakan untuk membuat aplikasi web dinamis (backend), termasuk WordPress. Pada server Debian, PHP menjadi komponen penting karena WordPress dibangun di atas PHP. PHP memproses logika aplikasi dan berinteraksi dengan basis data MySQL/MariaDB untuk menampilkan konten situs web.

Untuk menguji apakah PHP sudah terpasang dan berfungsi dengan benar di server Debian, Anda bisa membuat file phpinfo. File ini menampilkan informasi tentang konfigurasi PHP yang sedang berjalan, termasuk versi PHP, modul yang diaktifkan, dan pengaturan server.

Langkah-langkah membuat file phpinfo.php di direktori /var/www/html/:

Untuk menguji apakah PHP sudah terpasang dan berfungsi dengan benar di server Debian, Anda bisa membuat file phpinfo. File ini menampilkan informasi tentang konfigurasi PHP yang sedang berjalan, termasuk versi PHP, modul yang diaktifkan, dan pengaturan server.

Langkah-langkah membuat file phpinfo.php di direktori /var/www/html/:

dengan mengetikCopy

nano /var/html/info.php

maka anda akan memasuki file info.php

selanjutnya buat script php untuk mengambil fungsi phpinfoCopy

<?php
phpinfo();

Lalu simpan konfigurasi dengan cara ctrl x + y + enter

Tahap selanjutnya uji pada browser dan masukan alamat ip server disertai `/info.php`

Maka anda akan mendapati tampilan mengenai semua informasi mengenai php.

Konfigurasi Mariadb (Database)

MariaDB adalah sistem manajemen basis data (database) open-source yang merupakan pengganti langsung dari MySQL. Pada Debian, MariaDB digunakan untuk menyimpan dan mengelola data yang dibutuhkan oleh aplikasi web seperti WordPress.

Setelah instalasi, Anda bisa mengamankan instalasi MariaDB dan mengatur kata sandi root menggunakanCopy

mysql_secure_installation

Selanjutnya tekan enter.

Masukan password root jika anda mempunyai.

pilih n

Selanjutnya anda diminta untuk memilih apakah menghapus user yang tidak dikenal ketik Y untuk menghapus pengguna anonim. Ini meningkatkan keamanan dengan memastikan hanya pengguna yang diketahui dapat mengakses basis data.

Setelah itu anda diminta untuk memilih apakah mengizinkan remote login ketik Y untuk melarang akses root dari jarak jauh. Ini penting untuk keamanan, karena root sebaiknya hanya bisa login secara lokal

Pada tahap selanjutnya anda diminta ketik Y untuk menghapus database tes yang secara default diinstal dan terbuka untuk semua pengguna. Database ini tidak diperlukan untuk produksi.

Selanjutnya anda diminta untuk menyimpan konfigurasi ketik Y untuk memuat ulang tabel hak akses. Ini memastikan semua perubahan yang Anda buat (seperti kata sandi baru dan penghapusan pengguna) segera berlaku.

Maka konfigurasi telah selesai.

Pembuatan Database untuk WordPress

Tahap selanjutnya pembuatan database yang akan digunakan untuk WordPress.

Ketik mariadb lalu enter untuk memasuki program databaseCopy

mariadb

Pada gambar dibawah ini adalah tampilan awal mariadb

lalu ketik create database <nama_database> untuk membuat database baru disini penulis membuat database baru dengan nama andhikatia_wp jika berhasil maka akan muncul output Query OK

Selanjutnya buat user baru dan passwordnya seperti gambar dibawah iniCopy

create user ‘<namauser>’@’localhost’ identified by ‘<password>’;

Setelah itu berikan akses user yang telah dibuat tadi pada database `andhika_wp dengan perintahCopy

grant all privileges on andhikatia_wp.*to’<user>’@’localhost’ with grant option;

Selanjutnya lakukan flush previleges untuk menyimpan perubahan

lalu ketik exit; untuk keluar dari Mariadb ditandai dengan Bye

Download WordPress

Setelah itu download WordPress versi terbaru menggunakan wget

Ketik wget https://wordpress.org/latest.tar.gz lalu enter untuk mendownload tunggu hingga 100% dan seperti gambar dibawah ini.

Setelah itu ekstrak dokumen hasil download menggunakan perintah tar karena file wordpress yang penulis download menggunakan format kompresi tar.gz untuk melakukan ekstrak gunakan perintahCopy

tar -xzvf <namafile>

Perintah tar -xzvf <namafile> digunakan untuk mengekstrak file arsip yang berformat tar.gz (atau tgz). Berikut adalah penjelasan dari setiap flag (opsi) yang digunakan:

  • -x: Ekstrak file dari arsip (unarchive).
  • -z: Menggunakan gzip untuk mendekompresi file (karena file dengan ekstensi .tar.gz atau .tgz dikompresi menggunakan gzip).
  • -v: Mode verbose, menampilkan proses ekstraksi file satu per satu di terminal.
  • -f: Menentukan nama file arsip yang akan diekstrak (misalnya <namafile>).

Secara umum, tar digunakan untuk menggabungkan beberapa file atau direktori menjadi satu file arsip, dan opsi -xzvf digunakan untuk mengekstrak file dari arsip terkompresi tar.gz

Tunggu hingga proses ekstrak selesai seperti gambar diatas.

Setelah itu hapus semua file pada direktori html yang berisi file default apache2 dan info.php

Setelah itu pindahkan folder wordpress yang telah diesktrak tadi ke folder html/ dengan perintah mv wordpress /var/www/html agar web server hanya bertugas menampilkan wordpress.

Perintah chown -R www-data:www-data /var/www/html digunakan untuk mengubah kepemilikan file dan direktori di /var/www/html menjadi milik user dan grup www-data, yang biasanya digunakan oleh server web seperti Apache atau Nginx.

  • chown: Perintah untuk mengubah kepemilikan file
  • -R: Opsi untuk mengubah secara rekursif, termasuk semua file dan subdirektori
  • www-data:www-data: Menetapkan user dan grup menjadi www-data
  • /var/www/html: Direktori target yang kepemilikannya akan diubah.

Perintah chmod 755 /var/www/html digunakan untuk mengatur izin akses pada direktori /var/www/html.

  • chmod: Perintah untuk mengubah izin file atau direktori.
  • 755: Izin akses yang diberikan:
    • 7 (rwx) untuk pemilik (user) — pemilik memiliki izin membaca, menulis, dan mengeksekusi.
    • 5 (r-x) untuk grup — grup hanya memiliki izin membaca dan mengeksekusi.
    • 5 (r-x) untuk orang lain (others) — orang lain hanya memiliki izin membaca dan mengeksekusi.
  • /var/www/html: Direktori yang izin aksesnya akan diubah.

Dengan demikian, pemilik direktori dapat membaca, menulis, dan mengeksekusi, sementara grup dan pengguna lain hanya dapat membaca dan mengeksekusi.

Pengujian WordPress

Untuk melakukan pengujian wordpress buka browser dengan alamat ip dan berikut tampilan awal anda diminta memilih bahasa disini penulis akan menggunakan English (United States)

Selanjutnya klik Continue

Selanjutnya klik Lets go! untuk memulai proses instalasi

Isi sesuai database yang telah kita buat tadi.

Kurang lebih seperti ini pada bagian password usahakan menggunakan password yang kuat lalu klik Submit.

Klik Run the installation.

Lalu isikan informasi untuk website yang akan anda buat

Disini penulis mengisikan seperti ini lalu klik Install WordPress

Setelah itu anda bisa login ataupun melihat web nya langsung.

Seperti ini atau anda dapat login untuk mengelola web dengan masuk ke dashboard login menggunakan username dan password

berikut tampilan dashboard wordpress

Sampai tahap ini anda telah berhasil melakukan instalasi dan konfigurasi WordPress namun kita masih memiliki kekurangan yaitu alamat nya masih berupa IP oleh karena itu kita akan menganti menjadi sebuah domain seperti andhikatia.com

Konfigurasi DNS

DNS (Domain Name System) adalah sebuah sistem yang mana mengkonversi dari alamat ip ke sebuah nama domain semisal anda mengakses sebuah situs web Google misalnya hal yang anda lakukan adalah membuka browser lalu mengetik kan alamat url google.com padahal yang sebenarnya komputer yang anda gunakan tidak akan tahu google.com itu siapa yang komputer tahu hanyalah angka dalam hal ini alamat ip jika kita mengakses google.com komputer akan mengarah kan ke alamat ip google yaitu 216.239.38.120.

Tentu hal ini akan sangat merepotkan jika anda harus menghapal semua alamat ip situs situs yang ingin anda kunjungi maka dibuatkan lah DNS sebuah sistem yang akan menerjemahkan alamat ip ke sebuah nama domain (nama situs) tentu anda akan lebih mudah menghapal huruf bukan daripada sebuah angka.

Tahap selanjut nya penulis akan Menginstal paket untuk DNSCopy

apt install bind9 bind9-doc bind9utils

Setelah itu enter untuk melanjutkan proses instalasi dan tunggu sampai selesai

DNS Server memiliki beberapa file konfigurasi yaitu :

  • db.local (Untuk file forward / mentranslasikan domain ke IP)
  • db.127 (Untuk file reverse / mentranslasikan IP ke domain)
  • named.conf (Fungsinya untuk konfigurasi utama DNS)

Selanjutnya konfigurasi db.local pada tahap ini saya akan mengcopy db.local menjadi db.nama-domain, disini saya akan menggunakan nama domain andhikatia.com

format perintah untuk melakuakn copy adalahCopy

cp /etc/bind/db.local /etc/bind/db.namadomainanda

lalu kita juga akan melakukan copy juga db.127

Tampilannya akan seperti itu, langkah selanjutnya adalah melakukan konfigurasi pada setiap file db dengan format perintah nano /etc/bind/namadb

kita konfigurasi terlebih dahulu untuk db.andhikatia.com dengan perintahCopy

nano /etc/bind/db.andhikatia.com

Setelah itu enter

selanjutnya

Klik ctrl + w untuk melakukan pencarian (search)

Lalu klik ctrl + r untuk menganti (replace)

lalu ketikan localhost karena kita akan menganti bagian ini lalu tekan enter

Lalu ketik nama domain anda seperti gambar diatas. dan enter

Setelah itu konfirmasi dengan mengklik huruf A pada keyboard

maka akan berubah dari yang tadinya localhost menjadi sebuah nama domain andhikatia.com

setelah itu rubah 127.0.0.1 menjadi alamat ip server lalu jika sudah klik ctrl + x + y + enter

pada @ IN AAA ::1 adalah tempat untuk konfigurasi IPv6 , anda dapat menghapusnya atau biarkan saja karena kita masih menggunakan IPv4. disini akan saya hapus

Tahap selanjutnya kita edit konfigurasi untuk db.192.168

Setelah itu anda akan mendapati tampilan seperti ini lakukan hal yang sama yaitu menganti localhost menjadi sebuah domain dengan cara search dan replace ctrl w + ctrl r lalu isikan localhost dan ganti menjadi nama domain yaitu andhikatia.com dan pada angka 1.0.0 rubah menjadi 2 oktet ip dari belakang dan dibalik contohnya alamat ip saya adalah 192.168.100.198 maka akan saya tulis 198.100

Setelah seperti gambar diatas lalu ctrl x + y dan enter untuk menyimpan konfig dan keluar.

Selanjutnya adalah tahap untuk konfigurasi utama ketik `nano /etc/bind/named.conf.local` lalu enter

maka akan mendapati tampilan seperti ini lalu isi dengan script dengan format seperti iniCopy

zone "namadomain" {
    type master;
    file "/etc/bind/db.domain";
};

zone "2oktetipdibalik.in-addr.arpa" {
    type master;
    file "/etc/bind/db.ip";
};

Jika sudah keluar dan simpan konfigurasi ctrl x + y enter

Lalu ketik `systemctl restart bind9` untuk menyimpan perubahan semua konfigurasi pada bind9

Setelah itu ketik `nano /etc/resolv.conf` untuk menambah server lokal karena kita akan melakukan test melalui server apakah domain kita sudah dikenali

Maka akan muncul tampilan seperti gambar diatas tambahkan nameserver pada file ini

Seperti gambar diatas lalu simpan dan keluar

Lalu test menggunakan nslookup baik domain maupun alamat ip serverCopy

nslookup andhikatia.com

Copy

nslookup 192.168.100.198

Kurang lebih hasil outputnya seperti gambar diatas

Pengujian DNS

Setelah itu mari kita uji dengan mengetikan alamat domain ke browser dan seperti gambar diatas kita telah berhasil membuat sebuah domain dan ini lebih mudah diingat oleh manusia ketimbang alamat ip. Pada tahap ini anda telah berhasil membuat wordpress dan juga melakukan konfigurasi domain namun kita masih terdapat kekurangan yaitu situs yang kita buat menggunakan protokol http ditandai denganCopy

http://andhikatia.com

dan juga terdapat logo gembok tersilang merah yang mana sangat rentan oleh serangan cyber / hacking oleh karena itu kita akan membuat sebuah keamanan agar situs kita bisa menggunakan https (s = secure) dengan menggunakan SSL

Konfigurasi SSL

Sebelum itu mari kita kenalan dengan SSL (Secure Sockets Layer) adalah protokol keamanan yang digunakan untuk mengenkripsi data yang ditransmisikan antara server dan pengguna. SSL memastikan bahwa data seperti informasi login, kartu kredit, dan data sensitif lainnya tetap aman dari penyadapan atau serangan pihak ketiga. Saat SSL digunakan, URL situs web dimulai dengan “https://” dan ditandai dengan ikon gembok di browser.

Langkah pertama buat folder untuk tempat tersimpannya kunci kita nanti

Selanjutnya ketikan perintah `openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/andhikatia/andhikatia.key -out /etc/ssl/andhikatia.crt`

Penjelasannya:

  • openssl req: Perintah untuk membuat permintaan sertifikat (Certificate Signing Request).
  • -x509: Opsi untuk membuat sertifikat self-signed, yang biasanya digunakan untuk testing atau penggunaan internal.
  • -nodes: Menunjukkan bahwa tidak perlu mengenkripsi file kunci privat dengan passphrase.
  • -days 365: Masa berlaku sertifikat selama 365 hari.
  • -newkey rsa:2048: Membuat kunci RSA baru dengan panjang 2048-bit.
  • -keyout /etc/ssl/andhikatia/andhikatia.key: Menyimpan kunci privat di lokasi yang ditentukan.
  • -out /etc/ssl/andhikatia.crt: Menyimpan sertifikat self-signed di lokasi yang ditentukan.

Perintah ini menghasilkan kunci privat dan sertifikat yang dapat digunakan untuk mengamankan komunikasi melalui HTTPS lalu klik enter.

Anda akan diminta mengisi informasi yang akan digunakan pada sertifikat SSL nantinya kurang lebih seperti gambar diatas. Setelah itu langkah selanjutnya adalah mengaktifkan modul SSL pada Apache (web server)

Ketik `nano /etc/apache2/sites-available/andhikatia.com.conf` lalu enter

Maka anda akan membuat file konfigurasi baru dengan text editor nano

Lalu buat script seperti gambar diatasdan simpan lalau keluar dengan ctrl x + y dan enter

setelah itu pindah ke direktori konfigurasi Apache2 dengan ketik `cd /etc/apache2/sites-available/` lalu enter.

Setelah itu ketik perintah `a2enmod ssl` lalu enter

Lalu ketik perintah `systemctl reload apache2` untuk mengaktifkan konfigurasi baru pada web server.

Pengujian SSL

Pada tahap ini kita akan melakukan pengujian dengan cara buka browser

Masih terdapat warning mengenai keamanan karena sertifikat ssl kita belum terdaftar pada Internet akan tetapi kita sudah bisa menggunakan HTTPS alih alih menggunakan protokol HTTP jika muncul warning seperti ini klik Advanced…

Lalu klik Accept the Risk and Continue

Maka akan menuju situs anda yang sudah terenkripsi dan lebih aman dengan dukungan HTTPS dan terdapat icon gembok yang menunjukan bahwa situs mempunyai SSL sebagai lapisan keamanan

Tentang andhika

Andhika Pratama Putra adalah seorang sysadmin sekaligus teknisi jaringan dengan pengalaman dalam menangani konfigurasi server, dan jaringan komputer. Saat ini membuka layanan setting secara remote untuk membantu UMKM, kantor, dan pengguna rumahan. Dengan latar belakang pendidikan Teknik Komputer dan Jaringan serta pengalaman di lapangan
Tulisan ini dipublikasikan di Server. Tandai permalink.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *