WordPress merupakan platform CMS paling populer yang dapat dijalankan pada berbagai stack server. Salah satu kombinasi yang efisien dan semakin banyak digunakan adalah LEMP stack—Linux, Nginx (dibaca “Engine-X”), MySQL/MariaDB, dan PHP.
![]()
Artikel ini akan memandu Anda langkah demi langkah untuk menginstal WordPress di server LEMP. Anda akan mempelajari cara mengunduh WordPress, membuat database, mengkonfigurasi Nginx server block, hingga menyelesaikan instalasi via browser. Di akhir panduan, Anda juga akan mendapatkan tips optimasi dan troubleshooting untuk memastikan instalasi berjalan lancar.
Panduan ini cocok untuk Anda yang sudah memiliki server LEMP aktif dan ingin menjalankan WordPress dengan performa optimal. (Bagi Anda yang belum menginstall LEMP di servernya bisa ikuti panduannya disini)
Prasyarat Sebelum Memulai
Sebelum memulai proses instalasi WordPress, pastikan beberapa hal berikut sudah tersedia dan terkonfigurasi dengan benar di server Anda.
Akses SSH ke Server
Anda memerlukan akses SSH untuk menjalankan berbagai command di terminal server. Pastikan Anda memiliki:
- Username dan password atau SSH key untuk login ke server
- IP address server atau hostname
- Akses root atau user dengan privilege sudo
Untuk login ke server via SSH, gunakan command berikut:
ssh username@ip_address_server
Jika menggunakan SSH key, tambahkan parameter -i:
ssh -i /path/to/private_key username@ip_address_server
Kredensial Database MySQL/MariaDB
WordPress membutuhkan database untuk menyimpan semua konten, pengaturan, dan data website. Pastikan MySQL atau MariaDB sudah terinstal dan berjalan di server Anda.
Anda perlu memiliki akses root MySQL untuk membuat database baru dan user khusus WordPress. Simpan kredensial berikut:
- Root password MySQL/MariaDB
- Nama database yang akan dibuat (misal:
wordpress_db) - Username database WordPress (misal:
wp_user) - Password untuk user database tersebut
Domain yang Sudah Mengarah ke Server (Opsional)
Jika Anda ingin mengakses WordPress via domain (misalnya www.yourdomain.com), pastikan DNS record sudah diarahkan ke IP server Anda.
Untuk testing awal, Anda bisa menggunakan IP address server secara langsung. Namun untuk production, sangat disarankan menggunakan domain name yang proper.
Catatan: Proses propagasi DNS bisa memakan waktu 1-48 jam tergantung provider DNS Anda.
Mengunduh dan Menyiapkan File WordPress
Setelah prasyarat terpenuhi, langkah pertama adalah mengunduh WordPress versi terbaru dan menyiapkan file-file di lokasi yang tepat di server.
Download WordPress Terbaru
WordPress secara resmi menyediakan package terbaru dalam format .tar.gz yang dapat diunduh langsung dari command line.
Masuk ke direktori temporary terlebih dahulu:
cd /tmp
Download WordPress versi terbaru menggunakan wget:
wget https://wordpress.org/latest.tar.gz
Jika wget tidak tersedia, Anda bisa menggunakan curl:
curl -O https://wordpress.org/latest.tar.gz
Command ini akan mengunduh file latest.tar.gz ke direktori /tmp.
Ekstrak dan Pindahkan ke Direktori Web (misal: /var/www/yourdomain)
Setelah download selesai, ekstrak file archive tersebut:
tar -xzvf latest.tar.gz
Proses ekstraksi akan membuat folder bernama wordpress yang berisi semua file instalasi.
Selanjutnya, pindahkan folder tersebut ke direktori web root Anda. Sebagai contoh, kita akan gunakan /var/www/yourdomain:
sudo mkdir -p /var/www/yourdomain
sudo mv wordpress/* /var/www/yourdomain/
Jika direktori /var/www/yourdomain sudah ada, pastikan direktori tersebut kosong atau backup dulu konten yang ada.
Alternatif: Jika Anda ingin meletakkan WordPress di document root langsung seperti /var/www/html, sesuaikan path-nya:
sudo mv wordpress/* /var/www/html/
Mengatur Permission dan Ownership Folder WordPress
Permission dan ownership yang tepat sangat penting untuk keamanan dan fungsionalitas WordPress. Nginx biasanya berjalan dengan user www-data di Ubuntu/Debian atau nginx di CentOS.
Ubah ownership folder ke user web server:
sudo chown -R www-data:www-data /var/www/yourdomain
Set permission yang aman untuk file dan folder:
sudo find /var/www/yourdomain -type d -exec chmod 755 {} \;
sudo find /var/www/yourdomain -type f -exec chmod 644 {} \;
Penjelasan:
755untuk direktori memungkinkan owner untuk read/write/execute, sedangkan group dan others hanya read/execute644untuk file memungkinkan owner untuk read/write, group dan others hanya read- Ini mencegah unauthorized modification sambil tetap memungkinkan web server membaca file
Membuat Database dan User WordPress
WordPress memerlukan database MySQL/MariaDB untuk menyimpan semua data. Anda perlu membuat database baru beserta user khusus yang memiliki akses penuh ke database tersebut.
Membuat Database Baru
Login ke MySQL shell sebagai root:
sudo mysql -u root -p
Masukkan password root MySQL ketika diminta.
Buat database baru untuk WordPress:
CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Catatan: Gunakan utf8mb4 untuk mendukung character set lengkap termasuk emoji dan karakter khusus.
Membuat User MySQL dan Memberi Hak Akses
Setelah database dibuat, buat user baru dan berikan hak akses penuh ke database WordPress:
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'password_kuat_anda';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
Ganti wp_user dan password_kuat_anda dengan kredensial yang Anda inginkan.
Best Practice: Gunakan password yang kuat dengan kombinasi huruf besar-kecil, angka, dan simbol.
Untuk keluar dari MySQL shell:
EXIT;
Menyimpan Detail Database untuk wp-config
Catat informasi database yang baru saja Anda buat. Informasi ini akan digunakan pada tahap konfigurasi wp-config.php:
| Parameter | Nilai Contoh |
|---|---|
| Database Name | wordpress_db |
| Database User | wp_user |
| Database Password | password_kuat_anda |
| Database Host | localhost |
| Table Prefix | wp_ (default) |
Simpan informasi ini di tempat yang aman karena akan dibutuhkan pada langkah berikutnya.
Konfigurasi File wp-config.php
File wp-config.php adalah file konfigurasi utama WordPress yang berisi informasi koneksi database dan berbagai setting penting lainnya.
Menyalin wp-config-sample.php
WordPress menyediakan template konfigurasi bernama wp-config-sample.php. Anda perlu menyalin file ini menjadi wp-config.php:
cd /var/www/yourdomain
sudo cp wp-config-sample.php wp-config.php
Setelah disalin, buka file wp-config.php dengan text editor:
sudo nano wp-config.php
Atau jika Anda lebih familiar dengan vim:
sudo vim wp-config.php
Mengisi Detail Database
Cari bagian database configuration di file wp-config.php dan sesuaikan dengan kredensial database yang telah Anda buat:
define( 'DB_NAME', 'wordpress_db' );
define( 'DB_USER', 'wp_user' );
define( 'DB_PASSWORD', 'password_kuat_anda' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );
Catatan: Jika MySQL berjalan di server terpisah, ganti localhost dengan IP address atau hostname server database Anda.
Menambahkan Authentication Keys & Salts
WordPress menggunakan secret keys untuk mengenkripsi informasi yang disimpan di cookies user. Untuk keamanan maksimal, gunakan keys yang unik dan random.
WordPress menyediakan generator online untuk keys ini. Akses URL berikut di browser:
https://api.wordpress.org/secret-key/1.1/salt/
Copy semua keys yang dihasilkan, kemudian paste di bagian authentication keys di wp-config.php:
define('AUTH_KEY', 'your-unique-phrase-here');
define('SECURE_AUTH_KEY', 'your-unique-phrase-here');
define('LOGGED_IN_KEY', 'your-unique-phrase-here');
define('NONCE_KEY', 'your-unique-phrase-here');
define('AUTH_SALT', 'your-unique-phrase-here');
define('SECURE_AUTH_SALT', 'your-unique-phrase-here');
define('LOGGED_IN_SALT', 'your-unique-phrase-here');
define('NONCE_SALT', 'your-unique-phrase-here');
Jangan gunakan values di atas—generate keys baru yang unik untuk instalasi Anda.
Simpan perubahan dengan menekan Ctrl+X, lalu Y, dan Enter jika menggunakan nano.
Pengaturan Opcache atau Redis (Opsional)
Untuk meningkatkan performa WordPress, Anda bisa mengaktifkan object caching dengan Redis atau mengoptimalkan PHP Opcache.
Redis Configuration:
Jika Redis sudah terinstal, tambahkan di wp-config.php:
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_CACHE', true);
Install plugin Redis Object Cache setelah WordPress berjalan untuk mengaktifkan fitur ini.
PHP Opcache:
Opcache biasanya sudah enabled by default di PHP 7.x ke atas. Verifikasi dengan membuat file info.php:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/yourdomain/info.php
Akses http://yourdomain.com/info.php dan cari section Opcache. Hapus file ini setelah verifikasi untuk keamanan.
Konfigurasi Server Block Nginx
Server block di Nginx setara dengan virtual host di Apache. Anda perlu membuat konfigurasi khusus untuk WordPress agar dapat diakses dengan benar.
Struktur Konfigurasi Ideal WordPress pada Nginx
Konfigurasi Nginx untuk WordPress perlu menangani beberapa hal penting:
- Routing request PHP ke PHP-FPM
- Permalink structure WordPress
- Security headers dan restrictions
- File upload handling
- Static file caching
Berikut adalah struktur dasar yang direkomendasikan untuk WordPress:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Catatan: Sesuaikan versi PHP socket path (php8.1-fpm.sock) dengan versi PHP yang terinstal di server Anda.
Menambahkan Server Block Baru
Buat file konfigurasi baru di direktori sites-available Nginx:
sudo nano /etc/nginx/sites-available/yourdomain
Masukkan konfigurasi lengkap berikut:
server {
listen 80;
listen [::]:80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain;
index index.php index.html index.htm;
# Logging
access_log /var/log/nginx/yourdomain_access.log;
error_log /var/log/nginx/yourdomain_error.log;
# WordPress permalinks
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP processing
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Security: deny access to hidden files
location ~ /\. {
deny all;
}
# Deny access to wp-config.php
location = /wp-config.php {
deny all;
}
# Static files caching
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
Sesuaikan server_name, root, dan PHP socket path dengan konfigurasi server Anda.
Mengaktifkan Konfigurasi dan Reload Nginx
Buat symbolic link dari sites-available ke sites-enabled:
sudo ln -s /etc/nginx/sites-available/yourdomain /etc/nginx/sites-enabled/
Test konfigurasi Nginx untuk memastikan tidak ada syntax error:
sudo nginx -t
Jika output menunjukkan “syntax is ok” dan “test is successful”, reload Nginx:
sudo systemctl reload nginx
Jika ada error, periksa kembali konfigurasi dan pastikan path serta parameter sudah benar.
Optional: Jika menggunakan konfigurasi default Nginx, nonaktifkan untuk menghindari konflik:
sudo rm /etc/nginx/sites-enabled/default
Menjalankan Instalasi WordPress via Browser
Setelah semua konfigurasi server selesai, Anda dapat menjalankan wizard instalasi WordPress melalui web browser.
Mengakses alamat domain atau IP
Buka web browser dan akses domain atau IP server Anda:
http://yourdomain.com
Atau jika menggunakan IP:
http://123.456.789.012
Jika konfigurasi benar, Anda akan melihat halaman welcome WordPress dengan pilihan bahasa instalasi.
Pilih bahasa yang diinginkan (misalnya “English” atau “Bahasa Indonesia”), kemudian klik “Continue” atau “Lanjutkan”.
Mengisi Informasi Website (Judul, Username, Password)
Pada halaman berikutnya, Anda akan diminta mengisi informasi dasar website:
| Field | Keterangan |
|---|---|
| Site Title | Judul website Anda (dapat diubah nanti) |
| Username | Username admin WordPress (jangan gunakan “admin”) |
| Password | Password admin yang kuat |
| Your Email | Email admin untuk notifikasi |
| Search Engine Visibility | Centang jika ingin mesin pencari tidak mengindex site (untuk development) |
Best Practice Keamanan:
- Jangan gunakan username “admin” karena sangat rentan brute force attack
- Gunakan password minimal 12 karakter dengan kombinasi huruf, angka, dan simbol
- Gunakan email yang valid dan aktif untuk recovery
Setelah semua field terisi, klik “Install WordPress”.
Menyelesaikan Proses Instalasi
Proses instalasi akan berjalan beberapa detik. WordPress akan membuat tables di database dan melakukan setup awal.
Jika berhasil, Anda akan melihat pesan “Success!” dengan tombol “Log In”. Klik tombol tersebut untuk masuk ke WordPress admin dashboard.
Login menggunakan username dan password yang baru saja Anda buat. Setelah login, Anda akan dibawa ke dashboard WordPress dan dapat mulai membuat konten.
Troubleshooting: Jika muncul error pada tahap ini, lihat bagian Troubleshooting Umum di bawah untuk solusinya.
Optimasi dan Keamanan Dasar Setelah Instalasi
Setelah WordPress berhasil terinstal, ada beberapa langkah tambahan yang sangat disarankan untuk meningkatkan keamanan dan performa website.
Mengaktifkan HTTPS dengan Let’s Encrypt (Opsional)
HTTPS sangat penting untuk keamanan dan SEO. Let’s Encrypt menyediakan SSL certificate gratis yang mudah diinstal.
Install Certbot:
sudo apt install certbot python3-certbot-nginx
Jalankan Certbot untuk menggenerate dan menginstal certificate:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
Ikuti prompt interaktif. Certbot akan otomatis memodifikasi konfigurasi Nginx dan men-setup redirect HTTP ke HTTPS.
Untuk auto-renewal, jalankan:
sudo certbot renew --dry-run
Certificate akan otomatis diperpanjang setiap 90 hari via cron job.
Mengatur Permission Folder uploads
Folder wp-content/uploads memerlukan write permission agar WordPress dapat upload media files:
sudo chown -R www-data:www-data /var/www/yourdomain/wp-content/uploads
sudo chmod -R 755 /var/www/yourdomain/wp-content/uploads
Verifikasi dengan mencoba upload image melalui WordPress Media Library.
Instalasi Plugin Security Dasar
Install dan aktifkan plugin security untuk proteksi tambahan:
- Wordfence Security - Real-time threat detection dan firewall
- Limit Login Attempts Reloaded - Mencegah brute force attacks
- UpdraftPlus - Automated backup solution
Akses dashboard WordPress → Plugins → Add New, cari nama plugin, lalu install dan activate.
Tips Tambahan:
- Disable file editing dari dashboard dengan menambahkan
define('DISALLOW_FILE_EDIT', true);di wp-config.php - Change default table prefix dari
wp_ke sesuatu yang unique - Aktifkan two-factor authentication untuk admin accounts
Update WordPress, Themes, dan Plugins
Selalu jaga WordPress, themes, dan plugins dalam versi terbaru untuk menutup celah keamanan.
Untuk update via dashboard:
- Pergi ke Dashboard → Updates
- Klik “Update Now” untuk WordPress core
- Update semua themes dan plugins yang tersedia
Untuk update via WP-CLI (jika terinstal):
wp core update
wp plugin update --all
wp theme update --all
Set reminder untuk check updates minimal seminggu sekali atau enable auto-update untuk minor releases.
Troubleshooting Umum
Berikut adalah beberapa masalah umum yang mungkin Anda temui beserta solusinya.
Error 403 atau 404 di Nginx
Gejala: Saat mengakses website, muncul error 403 Forbidden atau 404 Not Found.
Penyebab Umum:
- Permission file/folder tidak tepat
- Server block configuration salah
- Index file tidak ditemukan
Solusi:
Periksa error log Nginx:
sudo tail -f /var/log/nginx/yourdomain_error.log
Pastikan try_files directive di server block sudah benar:
location / {
try_files $uri $uri/ /index.php?$args;
}
Verifikasi permission:
sudo chmod 755 /var/www/yourdomain
sudo chmod 644 /var/www/yourdomain/index.php
Reload Nginx setelah perubahan:
sudo systemctl reload nginx
Masalah Permission (403 Forbidden)
Gejala: Error “403 Forbidden” saat mengakses halaman atau upload file.
Penyebab: Ownership atau permission folder tidak sesuai dengan user Nginx.
Solusi:
Reset ownership ke web server user:
sudo chown -R www-data:www-data /var/www/yourdomain
Set permission yang tepat:
sudo find /var/www/yourdomain -type d -exec chmod 755 {} \;
sudo find /var/www/yourdomain -type f -exec chmod 644 {} \;
Untuk folder uploads yang butuh write access:
sudo chmod -R 775 /var/www/yourdomain/wp-content/uploads
Error “Error Establishing a Database Connection”
Gejala: WordPress menampilkan pesan error koneksi database.
Penyebab:
- Kredensial database di wp-config.php salah
- MySQL service tidak running
- Database tidak ada atau user tidak punya akses
Solusi:
Check status MySQL:
sudo systemctl status mysql
Jika stopped, start service:
sudo systemctl start mysql
Verifikasi kredensial di wp-config.php benar. Test koneksi database manual:
mysql -u wp_user -p wordpress_db
Jika gagal login, recreate user dan grant privileges:
DROP USER 'wp_user'@'localhost';
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'password_baru';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
Update password di wp-config.php sesuai password baru.
WordPress Tidak Bisa Upload File
Gejala: Saat upload image atau media, muncul error atau upload gagal.
Penyebab:
- Permission folder uploads salah
- PHP upload limit terlalu kecil
- Nginx client_max_body_size terbatas
Solusi Permission:
sudo chown -R www-data:www-data /var/www/yourdomain/wp-content/uploads
sudo chmod -R 755 /var/www/yourdomain/wp-content/uploads
Increase PHP Upload Limit:
Edit php.ini:
sudo nano /etc/php/8.1/fpm/php.ini
Ubah values berikut:
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
Restart PHP-FPM:
sudo systemctl restart php8.1-fpm
Increase Nginx Upload Limit:
Tambahkan di server block:
client_max_body_size 64M;
Reload Nginx:
sudo systemctl reload nginx
Kesimpulan
Menginstal WordPress di server LEMP memerlukan beberapa tahap setup yang telah kita bahas secara detail—mulai dari persiapan file WordPress, pembuatan database, konfigurasi wp-config.php, hingga setup Nginx server block.
Setelah instalasi selesai, jangan lupa untuk menerapkan optimasi dan langkah-langkah keamanan dasar seperti mengaktifkan HTTPS, mengatur permission yang tepat, dan rutin melakukan update. Dengan mengikuti panduan ini, WordPress Anda akan berjalan dengan performa optimal di environment LEMP yang efisien.
Jika menemui kendala, bagian troubleshooting di atas dapat membantu mengatasi masalah-masalah umum yang sering terjadi. Untuk kasus yang lebih kompleks, selalu periksa log error Nginx dan PHP untuk diagnosis lebih lanjut.
About The Author

Gege Riyadi
Founder Gegeriyadi.com, layanan yang sudah 10 tahun bergerak di bidang Web Development & WordPress Security Services yang juga intens update seputar SEO dan juga Web Optimization... [Read full bio]