Instalasi & Konfigurasi WordPress + SSL Let’s Encrypt Menggunakan Nginx di CentOS 6
EKO SISWANTO,S.Kom, M.Kom
13 Desember 2021
WordPress menurut saya adalah pilihan terbaik dari berbagai blog engine yang tersedia. Saya bisa mengatakan itu karena Bukan Coder juga menggunakan WordPress untuk website utama kami. Sama seperti judul artikel ini, ini merupakan gambaran dapur rahasia dari Bukan Coder. Website Bukan Coder dibuat menggunakan WordPress, ditambah SSL yang disediakan Let’s Encrypt, Nginx sebagai webserver dan semuanya berjalan di server yang menggunakan CentOS 6.
Saya terinspirasi untuk menulis ini setelah baru saja selesai untuk mengurus migrasi website utama Bukan Coder. Sebelumnya kami menggunakan server dengan Apache sebagai webserver, dan lokasi datacenter di US. Sekarang Bukan Coder sudah kami pindahkan ke server yang lokasi datacenter nya dekat dengan Indonesia, yaitu Singapore.
Sebelumnya untuk tutorial Install Nginx, PHP & MySQL di CentOS 6 bisa dibaca di Instalasi dan Konfigurasi Nginx, PHP FPM 5.4 dan MySQL 5.5 di CentOS 6. Untuk tutorial Intalasi Let’s Encrypt silahkan dibaca di Intalasi & Konfigurasi Let’s Encrypt SSL Menggunakan Nginx di CentOS 6.
Setelah itu kita lanjutkan dengan proses install WordPress
Konfigurasi Virtual Host Nginx + Let’s Encrypt
Buatlah file konfig baru untuk website kita yang akan menggunakan wordpress. Berikut contoh konfigurasi virtual host untuk website menggunakan subdomain https://wordpress.bukancoder.co.
cd /etc/nginx/sites-availablenano wordpress.bukancoder.co.confserver {
listen 443 http2 ssl;
listen 80;
servername wordpress.bukancoder.co;
if ($scheme = http) {
return 301 https://$servername$requesturi;
}
sslcertificate /etc/letsencrypt/live/wordpress.bukancoder.co/fullchain.pem;
sslcertificatekey /etc/letsencrypt/live/wordpress.bukancoder.co/privkey.pem;
########################################################################
# from https://cipherli.st/ #
# and https://raymii.org/s/tutorials/StrongSSLSecurityOnnginx.html #
########################################################################
sslprotocols TLSv1 TLSv1.1 TLSv1.2;
sslpreferserverciphers on;
sslciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
sslecdhcurve secp384r1;
sslsessioncache shared:SSL:10m;
sslsessiontickets off;
sslstapling on;
sslstaplingverify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolvertimeout 5s;
addheader Strict-Transport-Security "max-age=63072000; includeSubdomains";
addheader X-Frame-Options DENY;
addheader X-Content-Type-Options nosniff;
##################################
# END https://cipherli.st/ BLOCK #
##################################
ssldhparam /etc/ssl/certs/dhparam.pem;
location ~ /.well-known {
allow all;
}
root /home/teguh/www/wordpress.bukancoder.co/publichtml;
errorlog /home/teguh/www/wordpress.bukancoder.co/error.log;
accesslog /home/teguh/www/wordpress.bukancoder.co/access.log;
location / {
index index.php index.html index.htm;
tryfiles $uri $uri/ /index.php?q=$uri&$args;
}
location ~ .php$ {
include /etc/nginx/fastcgiparams;
fastcgipass 127.0.0.1:9000;
fastcgiindex index.php;
fastcgiparam SCRIPTFILENAME /home/teguh/www/wordpress.bukancoder.co/publichtml$fastcgiscriptname;
include fastcgiparams;
}
}Jangan lupa untuk mengganti wordpress.bukancoder.co dengan url milik kamu. Setelah itu kita lanjutkan dengan mendaftarkan SSL untuk subdomain wordpress.bukancoder.co.
service nginx stop
cd /opt/letsencrypt
sudo -H ./letsencrypt-auto certonly --standalone -d wordpress.bukancoder.coSetelah itu jalankan kembali nginx :
service nginx startDownload Wordpress
Pertama kita masuk dulu ke direktori dimana nantinya akan menjadi dir untuk website kita yang menggunakan wordpress.
cd /home/teguh/www/wordpress.bukancoder.co/publichtmlSetelah itu download wordpress :
wget http://wordpress.org/latest.tar.gz
sudo rsync -avP ~/wordpress/ /home/teguh/www/wordpress.bukancoder.co/publichtmlSetelah itu keseluruhan file wordpress akan dipindahkan ke direktori wordpress kita. Selanjutnya buatlah sebuah dir uploads untuk digunakan sebagai direktori konten statis WordPress kita.
mkdir /home/teguh/www/wordpress.bukancoder.co/publichtml/wp-content/uploadsKonfigurasi WordPress
cd /home/teguh/www/wordpress.bukancoder.co/publichtml
cp wp-config-sample.php wp-config.php
nano wp-config.phpSetelah itu kita sesuaikan baris berikut ini dengan informasi koneksi database yang kita gunakan untuk WordPress.
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DBNAME', 'databasewordpresskita');
/** MySQL database username */
define('DBUSER', 'userwordpress');
/** MySQL database password */
define('DBPASSWORD', 'passwordwordpressdatabase');Membuat Database MySQL untuk WordPress
WordPress tentu membutuhkan database untuk menyimpan keseluruhan konten dan konfigurasi. Oleh karena itu kita harus membuat database untuk wordpress terlebih dahulu.
mysql -u root -pSetelah itu buatlah sebuah database untuk koneksi wordpress
CREATE DATABASE databasewordpresskita;Setelah itu kita buat user untuk koneksi database wordpress
CREATE USER userwordpress@localhost IDENTIFIED BY 'passwordwordpressdatabase';Kita harus menghubungkan akses untuk database dengan user yang kita buat
GRANT ALL PRIVILEGES ON databasewordpresskita.* TO userwordpress@localhost IDENTIFIED BY 'passwordwordpressdatabase';
FLUSH PRIVILEGES;Instalasi WordPress
Setelah itu kita jalankan sebuah browser dan mengakses URL website kita yang menggunakan WordPress
Tentang Penulis
EKO SISWANTO,S.Kom, M.Kom
Penulis — Universitas STEKOM
Penulis aktif yang berfokus pada isu-isu akademik, teknologi pendidikan, dan pengembangan sumber daya manusia di lingkungan kampus.
