Cara Install WordPress dengan NGINX dan PHP-FPM – WordPress adalah salah satu platform blogging dan sistem manajemen konten (CMS) yang paling populer di dunia. WordPress dikembangkan dengan bahasa pemrograman PHP dan basis data MySQL.
WordPress dapat digunakan untuk membuat situs web, blog, dan aplikasi web. WordPress memungkinkan pengguna untuk mengelola konten mereka dengan mudah, dengan antarmuka yang intuitif dan mudah digunakan.
Salah satu kombinasi yang banyak direkomendasikan untuk menjalankan WordPress adalah menggunakan Nginx sebagai server web dan PHP-FPM sebagai pengelola pemrosesan PHP. Mari kita jelaskan mengapa kombinasi ini dianggap pilihan terbaik.
Baca Juga : Cara Install WordPress di Ubuntu 24.04 dengan Nginx, Mariadb, PHP8.3 (LEMP)
Beberapa alasan yang masuk akal dan berguna untuk diterapkan kenapa kok harus pakai nginx dan PHP-FPM untuk wordpress adalah sebagai berikut :
Nginx dikenal sebagai server web yang memiliki kinerja tinggi dan efisiensi luar biasa. Berbeda dengan server web lain seperti Apache, Nginx dirancang khusus untuk menangani banyak koneksi secara bersamaan dengan menggunakan sumber daya yang minimal. Ini berarti situs WordPress Anda akan memuat lebih cepat, yang sangat penting untuk meningkatkan pengalaman pengguna.
PHP-FPM, singkatan dari PHP FastCGI Process Manager, membawa eksekusi PHP ke tingkat berikutnya. Dengan memisahkan proses PHP dari server web utama, PHP-FPM memungkinkan penanganan permintaan PHP secara mandiri. Hal ini meningkatkan responsifitas dan kinerja secara keseluruhan. Penting untuk dicatat bahwa WordPress, sebagai platform berbasis PHP, dapat mengalami peningkatan yang signifikan dalam waktu muat halaman.
Baik Nginx maupun PHP-FPM beroperasi efisien dalam situasi lalu lintas tinggi. Keduanya dirancang untuk menangani banyak permintaan secara bersamaan, memastikan situs web tetap responsif bahkan ketika ada lonjakan pengunjung. Kemampuan ini memberikan jaminan bahwa situs WordPress Anda akan tetap berjalan lancar tanpa terpengaruh oleh fluktuasi lalu lintas.
Nginx memiliki reputasi yang baik dalam hal keamanan. Dengan konfigurasi bawaan yang ketat dan kemampuan untuk menangani DDoS (Distributed Denial of Service) dengan lebih baik, Nginx membantu melindungi situs WordPress Anda dari berbagai ancaman keamanan.
Nginx memudahkan pengaturan URL yang ramah SEO. Konfigurasi aturan pengalihan dan pemetaan URL dapat dilakukan dengan mudah tanpa perlu menangani file .htaccess seperti yang biasanya dilakukan di server Apache. URL yang ramah SEO dapat membantu meningkatkan peringkat situs Anda dalam hasil pencarian Google.
Nginx mendukung caching yang efisien, membantu mengurangi beban server dan mempercepat waktu muat halaman. Dengan penggunaan caching yang tepat, Anda dapat memberikan pengalaman pengguna yang lebih baik, yang pada akhirnya mendukung peringkat SEO yang lebih tinggi.
Sebelum memulai proses instalasi, pastikan Anda memiliki akses root penuh ke server Anda. Untuk Server VPS Yang digunakan pada tutorial ini adalah Linxu Ubuntu 22.04. Jika ANda menggunakan Linux Ubuntu 20.04 atau 18.04, Tutorial ini masih bisa Anda gunakan atau ikuti.
Spesifikasi VPS Minimal
Jika Anda belum mempunyai VPS, Anda bisa beli di provider lokal Indonesia atau provider luar seperti LInode,Vultr,OVH,dan Digital Ocean. Saya sangat merekomendasikan membeli VPS di Greencloud VPS. Karena VPS di sana sangat kenceng IOPS dan I/O Speednya. Hal ini membuat kecepatan website jadi cepat.
Beli VPS Greencloud : Klik di sini
Langkah wajib yang harus dilakukan sebelum menginstall sesuatu di server adalah update dulu servernya. Pertama akses server via ssh dengan user root.
sudo apt update && apt upgrade -y
Setelah proses update server selesai, langkah selanjutnya adalah menginstall webserver. Pada tutorial kali ini akan mengunakan Nginx sebagai web servernya. Untuk cara menginstall Nginx adalah sebagai berikut.
sudo apt install nginx -y
Jika proses instalasi nginx telah selesai, buka IP Publik VPS di browser dan pastikan muncul halaman Welcome Nginx seperti ini.
http://ip-vps
Jika halaman Welcome to nginx tidak muncul kemungkinan ada masalah pada firewall VPS. Pastikan kalian sudah mengijinkan koneksi http dan https.
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Refresh kembali browser Anda dan pastikan tampilan Welcome to nginx muncul. Jika tampilan welcome to nginx sudah muncul, proses menginstall Nginx webserver sudah selesai.
Nginx Server Blcok adalah tempat dimana Anda akan menyeting nama domain untuk web wordpress Anda. Menyeting lokasi folder wordpress dan mengatur konfigurasi keamanan lainya.
Untuk cara membuat nginx server block caranya adalah sebagai berikut :
Buat file conf di /etc/nginx/sites-available menggunakan text editor nano atau vim
sudo nano /etc/nginx/sites-available/wordpress.conf
Kemudian isikan baris-baris berikut
server {
listen 80;
server_name DomainAnda.com www.DomainAnda.com;
root /var/www/wordpress;
index index.php;
# Access log
access_log /var/log/nginx/domain-anda.access.log combined;
# Error log
error_log /var/log/nginx/domain-anda.error.log;
# Additional Configuration
client_max_body_size 10M;
client_body_buffer_size 128k;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 5;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
}
location = /favicon.ico {
log_not_found off;
access_log off;
expires max;
}
location = /robots.txt {
log_not_found off;
access_log off;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location /wp-content/uploads/ {
location ~ \.php$ {
deny all;
}
}
# Header Keamanan
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Frame-Options "SAMEORIGIN";
# Gzip Compression
gzip on;
gzip_vary on;
gzip_min_length 1000;
gzip_comp_level 5;
gzip_types application/json text/css application/x-javascript application/javascript image/svg+xml;
gzip_proxied any;
# Cache-Control
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
# Rest API
location ~ ^/wp-json/ {
rewrite ^/wp-json/(.*?)$ /?rest_route=/$1 last;
}
# Menonaktifkan akses ke file tersembunyi
location ~ /\.ht {
access_log off;
log_not_found off;
deny all;
}
}
Kemudian Aktifkan Virtualhost
sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled
Cek konfigurasi Nginx
sudo nginx -t
Pastikan hasilnya tidak ada eror dan syntax ok.
Terakhir restart Nginx
sudo service nginx restart
Langkah selanjutnya adalah menginstall database. Database yang akan digunakan pada kali ini adalah mariadb server. Untuk proses instalasinya adalah sebagai berikut.
Pertama install mariadb database server
sudo apt install mariadb-server -y
Setelah selesai, cek status mariadb dan pastikan statusnya active
sudo service mariadb start
sudo systemctl enable mariadb
sudo service mariadb status
Database yang digunakan adalah mariadb database server. Untuk wordpress, Anda perlu membuat database, membuat user database dan terakhir memberikan hak akses ke user ke database.
Pertama masuk dulu ke console mariadb.
sudo mariadb
Kemudian buat database untuk wordpress.
CREATE DATABASE wordpress_db;
Selanjutnya buat user mariadb
create user wordpressuser@localhost identified by 'your-password';
Berikan akses user tadi ke database wordpress
grant all privileges on wordpress_db.* to wordpressuser@localhost identified by 'your-password';
Terakhir flush database
FLUSH PRIVILEGES;
Keluar dari console mariadb
exit;
Kurang lebih untuk proses di atas adalah seperti ini :
WordPress adalah sistem manajemen konten berbasis PHP, Jadi memerlukan beberapa ekstensi PHP tertentu untuk berfungsi secara optimal. Beberapa ekstensi PHP yang umumnya dibutuhkan oleh WordPress adalah mysqli, curl, xml, gd, imagick, json, tokenizer, mbstring, dan zip
Untuk proses instalasi PHP 8.2, Pertama tambahkan Surý PHP APT repository
sudo apt update
sudo apt install -y lsb-release gnupg2 ca-certificates apt-transport-https software-properties-common
Tambahkan APT Repository Sury PHP
sudo add-apt-repository ppa:ondrej/php
Terakhir jalankan apt update
sudo apt update
Kemudian Anda bisa menginstall PHP 8.2 dan juga ekstensi yang dibuthkan untuk menjalankan wordpress.
sudo apt install php8.2 php8.2-fpm php8.2-bcmath php8.2-xml php8.2-mysql php8.2-zip php8.2-intl php8.2-ldap php8.2-gd php8.2-cli php8.2-bz2 php8.2-curl php8.2-mbstring php8.2-imagick php8.2-tokenizer php8.2-opcache php8.2-redis php8.2-cgi
Setelah itu jalankan service PHP-FPM dan cek statusnya. Pastikan status PHP-FPM sudah active.
sudo service php8.2-fpm start
sudo systemctl enable php8.2-fpm
sudo service php8.2-fpm status
Jika semua langkah di atas sudah dilakukan, pastikan service PHP-FPM berhasil active seperti ini.
Di tutorial ini Anda akan menginstall wordpress dari source code, pertama download file master wordpress terbaru, kemudian ekstrak dan mulai proses instalasinya di browser.
Website Official WordPress.org
Mengunduh File Master WordPress
sudo apt install wget
cd ~
wget http://wordpress.org/latest.tar.gz
Mengekstrak master file wordpress
sudo tar -xzvf latest.tar.gz
Memindahkan source code wordpress ke document root
sudo mv wordpress /var/www/wordpress
Mengubah kepemilikan dan hak akses folder document root
sudo chown -R www-data:www-data /var/www/wordpress/
sudo chmod -R 755 /var/www/wordpress/
Kemudian Anda cek dan pastikan hasilnya seperti ini. hak owner tiap folder dan file ke www-data dan hak akses ke 755.
Untuk proses instalasi, masukkan domain website wordpress Anda di browser. Kemudian halaman instalasi wordpress akan muncul. Ikuti saja perintah instalasinya sampai selesai.
Selanjutnya Anda akan diminta untuk memasukan nama database, user dan password database, database host, dan tabel prefix.
Setelah memasukkan database, situs web Anda siap untuk dilakukan instalasi. Pilih menu Run Installation untuk memulai proses instalasi wordpress.
Pada halaman ini Anda diminta untuk memasukan Judul Situs, username dan password login, dan email admin situs.
Proses Install Berhasil. Silahkan login ke admin panel dengan memasukkan username dan kata sandi yang tadi sudah dibuat.
SSL digunakan untuk mengamankan koneksi antara server dan browser. Dengan SSL, informasi yang dikirimkan antara server dan klien(browser) dienkripsi, sehingga tidak dapat diakses, disadap, atau dicuri oleh pihak tidak bertanggung jawab.
SSL yang akan digunakan adalah Lets Encrypt dan menggunakan certbot untuk proses instalasinya. Untuk menginstall SSL, Pertama adalah menginstall paket certbot dan python certbot nginx.
sudo certbot --nginx --agree-tos --redirect --hsts --email [email protected] -d sxsv.awanservers.com
Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --email [email protected] -d sxsv.awanservers.com
Pastikan proses request SSL berhasil seperti ini.
Refresh Website Anda dan sekarang website Anda sudah menggunakan HTTPs.
Secara default, file seperti gambar, file PDF yang diunggah ke perpustakaan media WordPress tidak boleh lebih besar dari 2MB. Untuk menambah batas ukuran unggahan, edit file konfigurasi PHP.
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 20M/g' /etc/php/8.2/fpm/php.ini
sudo sed -i 's/post_max_size = 8M/post_max_size = 20M/g' /etc/php/8.2/fpm/php.ini
Kemudian Restart PHP-FPM
sudo systemctl restart php8.2-fpm
Itulah panduan lengkap untuk install WordPress dengan NGINX dan PHP-FPM di Ubuntu 20.04 atau 22.04. Dengan konfigurasi ini, Anda mendapatkan kinerja yang optimal dan kompatibilitas penuh untuk menjalankan WordPress. Jangan lupa untuk selalu memperbarui sistem dan menerapkan langkah-langkah keamanan tambahan agar website tetap aman dan lancar. Semoga panduan ini membantu Anda menikmati pengalaman terbaik dengan WordPress di lingkungan NGINX dan PHP-FPM