Install WordPress di VPS Ubuntu: Nginx, PHP, SSL Gratis 2026
Hosting murah makin banyak, tapi developer justru kembali ke VPS
Paradoksnya jelas: panel hosting sekali klik makin mudah, namun semakin banyak pemilik situs WordPress memilih mengelola server sendiri. Alasannya bukan gengsi. Kontrol penuh atas cache, versi PHP, dan keamanan membuat situs lebih cepat dan lebih mudah diaudit. Menurut survei W3Techs, Nginx dan Apache sampai kini masih menguasai mayoritas web server di internet, dan WordPress tetap menjalankan sekitar seperempat lebih situs web dunia.
Artikel ini membahas cara memasang WordPress di Ubuntu dengan Nginx, PHP-FPM, MariaDB, dan sertifikat SSL gratis dari Let's Encrypt. Sebelum mengetik perintah pertama, kita bandingkan dulu pilihan web server-nya, karena keputusan ini memengaruhi seluruh konfigurasi setelahnya.
Nginx vs Apache vs OpenLiteSpeed untuk WordPress
| Aspek | Nginx | Apache | OpenLiteSpeed |
|---|---|---|---|
| Pola kerja | Event-driven, hemat memori | Proses/thread per koneksi (MPM) | Event-driven, cache bawaan |
| File .htaccess | Tidak didukung | Didukung penuh | Didukung sebagian |
| Konfigurasi | Satu file server block, ringkas | Modul dan virtual host | Panel web admin |
| Cache halaman | FastCGI cache (manual) | Perlu modul tambahan | LSCache (plugin WordPress) |
| Kurva belajar | Sedang | Rendah | Sedang |
Kelebihan dan kekurangan
- Nginx: ringan saat trafik naik, dokumentasi melimpah, cocok untuk VPS dengan RAM terbatas. Kekurangannya, aturan rewrite harus ditulis manual karena tidak ada .htaccess.
- Apache: paling ramah pemula dan kompatibel dengan hampir semua plugin yang menulis aturan ke .htaccess. Konsumsi memorinya lebih besar pada beban tinggi.
- OpenLiteSpeed: performa cache sangat baik bila memakai plugin LSCache. Komunitasnya lebih kecil, dan troubleshooting kadang butuh waktu lebih lama.
Cocok untuk siapa?
Pilih Nginx bila Anda ingin menguasai fondasi yang dipakai luas di dunia kerja DevOps. Pilih Apache bila situs bergantung pada plugin lawas yang memodifikasi .htaccess. Pilih OpenLiteSpeed bila prioritas Anda kecepatan WordPress tanpa banyak tuning manual. Panduan ini memakai Nginx.
Persiapan sebelum mulai
Anda membutuhkan VPS dengan Ubuntu LTS terbaru, akses SSH, dan sebuah domain yang A record-nya sudah mengarah ke IP server. Tanpa domain, SSL gratis tidak bisa diterbitkan. Bila belum punya server untuk latihan, vps gratis untuk website bisa jadi tempat uji sebelum Anda memindahkan situs ke produksi. Detail penawaran terkini ada di www.vpsgratis.id.
Masuk via SSH, lalu perbarui paket:
sudo apt update && sudo apt upgrade -y
sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enableAturan firewall di atas hanya membuka SSH, HTTP, dan HTTPS. Port lain tertutup secara bawaan.
Langkah 1: Pasang Nginx, PHP-FPM, dan MariaDB
sudo apt install -y nginx mariadb-server \
php-fpm php-mysql php-curl php-gd php-mbstring \
php-xml php-zip php-intl php-imagick unzip curlCek bahwa layanan aktif dengan systemctl status nginx dan systemctl status mariadb. Catat versi PHP yang terpasang lewat php -v, karena nama socket PHP-FPM bergantung pada versi tersebut.
Langkah 2: Amankan dan siapkan database
Jalankan sudo mysql_secure_installation untuk menghapus user anonim dan menonaktifkan login root jarak jauh. Lalu buat database khusus WordPress:
sudo mysql
CREATE DATABASE wp_blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'GANTI_DENGAN_PASSWORD_KUAT';
GRANT ALL PRIVILEGES ON wp_blog.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Gunakan user terpisah per situs. Bila satu situs diretas, database situs lain tetap aman.
Langkah 3: Unduh WordPress
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo mkdir -p /var/www/contoh.com
sudo cp -a wordpress/. /var/www/contoh.com/
sudo chown -R www-data:www-data /var/www/contoh.com
sudo find /var/www/contoh.com -type d -exec chmod 755 {} \;
sudo find /var/www/contoh.com -type f -exec chmod 644 {} \;Salin wp-config-sample.php menjadi wp-config.php, lalu isi nama database, user, dan password. Ambil salt keamanan baru dari generator resmi WordPress agar sesi login tidak mudah ditebak.
Langkah 4: Konfigurasi server block Nginx
Buat file /etc/nginx/sites-available/contoh.com:
server {
listen 80;
server_name contoh.com www.contoh.com;
root /var/www/contoh.com;
index index.php;
# Permalink WordPress: arahkan semua ke index.php
location / {
try_files $uri $uri/ /index.php?$args;
}
# Teruskan PHP ke PHP-FPM (sesuaikan versi socket)
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
# Blokir akses file tersembunyi
location ~ /\.ht { deny all; }
# Cache aset statis di browser
location ~* \.(css|js|jpg|jpeg|png|webp|svg|woff2)$ {
expires 30d;
access_log off;
}
}Aktifkan dan uji konfigurasi. Bila jalur socket berbeda, ganti dengan yang sesuai versi PHP Anda, misalnya php8.3-fpm.sock.
sudo ln -s /etc/nginx/sites-available/contoh.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxPoin Penting: Selalu jalankan nginx -t sebelum reload. Satu titik koma yang hilang bisa membuat semua situs di server berhenti, dan perintah ini menangkapnya lebih dulu.
Langkah 5: Pasang SSL gratis dengan Certbot
Let's Encrypt menerbitkan sertifikat gratis yang diakui semua browser utama. Certbot mengotomatiskan penerbitan sekaligus pembaruan.
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d contoh.com -d www.contoh.com
sudo certbot renew --dry-runPilih opsi redirect HTTP ke HTTPS saat ditanya. Perintah terakhir menguji pembaruan otomatis. Sertifikat Let's Encrypt berlaku singkat, jadi timer pembaruan harus berjalan. Cek dengan systemctl list-timers | grep certbot.
Langkah 6: Selesaikan instalasi dan kencangkan keamanan
Buka https://contoh.com di browser, ikuti wizard, dan buat akun admin dengan username selain "admin". Setelah itu:
- Aktifkan pembaruan otomatis untuk plugin dan tema yang Anda percaya.
- Nonaktifkan login SSH dengan password, pakai kunci SSH.
- Pasang Fail2ban untuk meredam brute force ke wp-login.php.
- Atur backup harian database dengan cron, lalu simpan salinannya di luar server.
- Naikkan client_max_body_size di Nginx bila perlu mengunggah file besar.
Kesalahan umum yang sering terjadi
- Halaman 502 Bad Gateway: socket PHP-FPM di konfigurasi tidak cocok dengan versi PHP yang terpasang.
- Permalink menghasilkan 404: baris try_files belum benar.
- Sertifikat gagal terbit: DNS belum menyebar, atau port 80 tertutup di firewall.
- Gagal unggah media: kepemilikan folder wp-content bukan milik www-data.
Pertanyaannya, perlukah semua ini bagi pemula? Ya, justru di situlah nilai belajarnya. Mahasiswa yang menjalankan stack ini sendiri akan paham cara kerja web dari DNS sampai database, bekal yang berguna di dunia kerja. Jika Anda sedang mencari vps gratis untuk mahasiswa, ini proyek latihan yang tepat, dan para praktisi bisa menengok vps gratis untuk developer untuk skenario lain seperti Docker dan CI/CD.
Langkah berikutnya
Setelah situs hidup, tambahkan FastCGI cache atau plugin cache, kompres gambar ke WebP, dan pantau penggunaan RAM dengan htop. Setiap ubahan sebaiknya diuji di server percobaan lebih dulu. Untuk memulai tanpa risiko, cek penawaran terbaru di www.vpsgratis.id atau kelola layanan lewat panel my.vpsgratis.id.
