Cara Install WordPress di Server LEMP (Linux, Nginx, MySQL, PHP)

By Last updated on November 16, 2025

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:

  • 755 untuk direktori memungkinkan owner untuk read/write/execute, sedangkan group dan others hanya read/execute
  • 644 untuk 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:

ParameterNilai Contoh
Database Namewordpress_db
Database Userwp_user
Database Passwordpassword_kuat_anda
Database Hostlocalhost
Table Prefixwp_ (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:

FieldKeterangan
Site TitleJudul website Anda (dapat diubah nanti)
UsernameUsername admin WordPress (jangan gunakan “admin”)
PasswordPassword admin yang kuat
Your EmailEmail admin untuk notifikasi
Search Engine VisibilityCentang 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:

  1. Wordfence Security - Real-time threat detection dan firewall
  2. Limit Login Attempts Reloaded - Mencegah brute force attacks
  3. 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

About image

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...