Cara Install WordPress di VPS Ubuntu (LEMP Stack + SSL)
Panduan Produksi: Manajemen Web Server Nginx, Tuning PHP-FPM, Proteksi MySQL, Keamanan Berkas, dan Otomatisasi SSL HTTPS
Melakukan instalasi WordPress di lingkungan **VPS (Virtual Private Server)** memberikan Anda kedaulatan penuh atas efisiensi performa server, fleksibilitas alokasi memori, hingga pengetatan sektor keamanan siber aplikasi. Dibandingkan menggunakan shared hosting konvensional yang kaku, mengombinasikan WordPress dengan arsitektur LEMP Stack (Linux, Nginx, MySQL, PHP-FPM) merupakan standardisasi industri yang sangat direkomendasikan untuk menangani trafik masif secara hemat resource RAM.
Panduan komprehensif ini akan membedah proses deployment pada VPS berbasis Ubuntu (LTS) secara berurutan dari nol. Kita akan mengisolasikan hak akses berkas (*file permissions*) demi meminimalkan risiko injeksi berkas malware, mengoptimalkan ambang batas runtime PHP, hingga mengotomatiskan enkripsi sertifikat **SSL Let's Encrypt** gratis guna menjamin keamanan pertukaran data biner situs Anda.
sudo, serta nama domain asli yang catatan DNS-nya (*A Record*) sudah diarahkan ke alamat IP publik VPS Anda.
1. Pembaruan Sistem dan Instalasi Core Paket LEMP Stack
Langkah awal yang mandatori adalah memperbarui indeks repositori Ubuntu server, dilanjutkan dengan memasang Nginx, database engine MySQL, serta PHP-FPM beserta ekstensi pendukung esensial WordPress:
# 1. Update paket indeks sistem operasi
sudo apt update && sudo apt upgrade -y
# 2. Pasang Nginx, MySQL Server, PHP-FPM, dan pustaka biner pendukung WordPress
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
2. Sekuritisasi DBMS MySQL dan Pembuatan Basis Data
Jalankan modul skrip keamanan internal untuk menghapus akun anonim, menonaktifkan login root jarak jauh, dan mengunci hak akses database:
sudo mysql_secure_installation
*Rekomendasi respons wizard: Aktifkan Validate Password Component (Pilih tingkat kekuatan 2 / Medium), buat kata sandi root baru, hapus anonymous users, disallow root login remotely, dan reload privilege tables.*
Selanjutnya, masuk ke konsol MySQL untuk memprovisikan skema database dan membuat user terisolasi khusus WordPress:
sudo mysql -u root -p
-- Membuat database khusus WordPress
CREATE DATABASE wordpress_db;
-- Membuat user lokal baru dengan kata sandi terproteksi
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'PasswordKuatWordPress123!';
-- Memberikan privilese penuh hanya pada database wordpress_db
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3. Tuning Ambang Batas Kinerja PHP-FPM
Agar proses unggah file media berukuran besar dan eksekusi skrip plugin tidak mengalami interupsi galat *timeout*, buka berkas konfigurasi php.ini *(Sesuaikan nomor versi PHP yang aktif pada VPS Anda, misal: php8.1 atau php8.3)*:
sudo nano /etc/php/8.1/fpm/php.ini
Cari baris berikut menggunakan pintasan `Ctrl + W`, ubah parameternya menjadi nilai optimasi produksi berikut:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
Simpan perubahan dengan menekan `Ctrl + O` lalu `Enter`, keluar lewat `Ctrl + X`, kemudian segarkan daemon dengan perintah:
sudo systemctl restart php8.1-fpm
4. Unduh Core WordPress & Penataan Hak Akses Berkas
Unduh paket instalasi WordPress resmi terbaru ke direktori temporer, ekstrak berkasnya, lalu tempatkan ke dalam folder root web server Linux target Anda:
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
# Membuat folder direktori kerja web (Ganti domain-surya.net dengan domain Anda)
sudo mkdir -p /var/www/domain-surya.net
sudo cp -a /tmp/wordpress/* /var/www/domain-surya.net/
# KUNCI KEAMANAN: Memberikan kepemilikan penuh pada user nginx (www-data)
sudo chown -R www-data:www-data /var/www/domain-surya.net/
# Standardisasi hak akses folder (755) dan file berkas (644) agar terproteksi dari injeksi eksploitasi
sudo find /var/www/domain-surya.net/ -type d -exec chmod 755 {} \;
sudo find /var/www/domain-surya.net/ -type f -exec chmod 644 {} \;
5. Konfigurasi Server Block Nginx (Virtual Host)
Buat file konfigurasi penunjuk jalan trafik baru untuk mengaitkan nama domain Anda menuju folder direktori WordPress harian:
sudo nano /etc/nginx/sites-available/domain-surya.net
Tempel struktur konfigurasi blok arsitektur RESTful berikut, sesuaikan string nama domain serta file socket versi PHP-FPM Anda:
server {
listen 80;
server_name domain-surya.net www.domain-surya.net;
root /var/www/domain-surya.net;
index index.php index.html index.htm;
location / {
# Aturan krusial agar fitur permalink kustom 'Post name' WordPress tidak memicu error 404
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# Pastikan string lokasi file .sock ini sesuai dengan nomor versi PHP sistem Anda
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
# Blokir akses luar langsung ke file konfigurasi rahasia internal dan file tersembunyi
location ~ /\.ht { deny all; }
location = /wp-config.php { deny all; }
}
Aktifkan konfigurasi dengan membuat simbolik tautan pintasan, lakukan pengujian sintaks, lalu muat ulang web server:
sudo ln -s /etc/nginx/sites-available/domain-surya.net /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
6. Otomatisasi Klaim Sertifikat Keamanan SSL Let's Encrypt
Gunakan modul otomasi klien Certbot Nginx untuk menyuntikkan enkripsi HTTPS secara otomatis ke dalam konfigurasi server Anda:
# Memasang certbot nginx client
sudo apt install certbot python3-certbot-nginx -y
# Trigger permohonan sertifikat SSL domain kustom harian Anda
sudo certbot --nginx -d domain-surya.net -d www.domain-surya.net
Ikuti instruksi interaktif terminal: Masukkan email pemulihan Anda, setujui aturan layanan, dan **pilih opsi nomor 2 (Redirect)** untuk memaksa pengalihan rute otomatis seluruh trafik HTTP biasa ke jalur aman biner HTTPS Let's Encrypt.
7. Menyelesaikan Pemasangan via Wizard Web
Buka aplikasi browser harian Anda, lalu akses alamat URL domain asli Anda: https://domain-surya.net. Anda akan disambut oleh halaman interaktif pemilihan bahasa WordPress. Klik lanjut dan isi rincian pangkalan data database Anda sesuai parameter pembuatan pada langkah ke-2:
- Database Name:
wordpress_db - Username:
wordpress_user - Password:
PasswordKuatWordPress123! - Database Host:
localhost - Table Prefix:
wp_*(Bisa Anda ubah secara kustom acak demi meningkatkan keamanan pangkalan data database)*
Klik tombol **"Run the installation"**, kemudian isi data untuk kredensial akun administrator Anda (Judul web, username kustom baru, password kuat baru, dan email admin). Akun dasbor WordPress Anda sukses dideploy dengan aman.
Protokol Wajib Pasca-Instalasi & Perbaikan Gangguan Terintegrasi VPS
Guna mempertahankan stabilitas eksekusi data dan perlindungan jangka panjang pada VPS Anda, pastikan Anda merujuk pada pedoman taktis berikut:
- Kunci Struktur Tautan Permalink SEO (Post Name): Segera setelah masuk dasbor WordPress, akses menu Settings → Permalinks, pilih opsi struktur "Post name", lalu klik simpan perubahan. Ini krusial agar tautan artikel Anda ramah terhadap robot perayap Google.
- Mengatasi Kendala "Error Connecting to Database": Jika di kemudian hari browser Anda menampilkan galat ini, tandanya engine MySQL Anda terhenti akibat konsumsi memori berlebih. Lakukan pengecekan status server pangkalan data lewat CLI perintah:
sudo systemctl status mysql, lalu nyalakan kembali lewat perintahsudo systemctl restart mysql. - Segera Pasang Jaring Pengaman Esensial Klien: Kurangi beban kerja server VPS dengan membatasi instalasi plugin berlebih. Anda hanya wajib menginstal 4 pilar utama penunjang operasional, yaitu plugin optimasi arsitektur SEO (*Rank Math / Yoast*), lapisan dinding perlindungan siber (*Wordfence Security*), asisten pembuat formulir kontak (*WPForms*), serta pengatur memori cache akselerasi (*W3 Total Cache / LiteSpeed Cache*).