Hari Kamis, waktunya ngeblog kembali. Pada artikel kali ini yaitu membahas mengenai Instalasi WordPress beserta Konfigurasi SSL pada Nginx menggunakan OS Debian 9. Kebetulan ini merupakan materi dan tugas kuliah saya, yaitu System Administrator. Ini merupakan tugas kelompok saya beserta 2 teman saya untuk menjelaskan dan live config langsung di depan kelas. Alhamdulillah berjalan lancar untuk live confignya pada Kamis malam tadi.
Untuk materi saya yaitu Instalasi WordPress beserta SSL pada Nginx. Bagi yang belum mengetahui apa itu wordpress, wordpress merupakan aplikasi opensource yang sangat populer digunakan sebagai blog engine. Selain sebagai blog engine, wordpress juga digunakan sebagai CMS (Content Management System) karena kemampuannya untuk dimodifikasi sesuai selera pengguna. Ref : https://id.wikipedia.org/wiki/WordPress
Untuk instalasi wordpress ini membutuhkan sebuah web server. Untuk web servernya saya gunakan Nginx. Berikut ini saya buatkan tahapan-tahapan proses instalasi wordpress untuk membantu teman-teman kuliah saya untuk mencoba materi ini.
Baca Juga : Tips Mendapatkan Nilai A+ pada Hasil Qualys SSL Labs untuk Apache2
1. Update repository dan instalasi paket-paket dependensi dasar
apt update && apt upgrade -y apt install ca-certificates apt-transport-https unzip nano vim wget nmap telnet -y
2. Tambahkan repository pihak ketiga untuk PHP 7.2 karena pada Debian 9, pada repository default nya hanya sampai PHP 7.0 saja
wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add - echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list
3. Instal paket-paket utama yang dibutuhkan seperti nginx, mysql-server dan php 7.2
apt update apt install php7.2-fpm php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-mysql mysql-server mysql-client nginx -y
4. Setelah instalasi paket utama diatas selesai, selanjutnya download installer wordpress dari situs wordpress.org, lalu extraxt menggunakan unzip
wget https://wordpress.org/latest.zip unzip latest.zip
5. Setelah proses unzip tersebut, akan ada folder bernama wordpress hasil extract tersebut. Pindahkan folder tersebut ke directory /var/www dimana directory tersebut merupakan tempat public html untuk nginx. Selanjutnya ubah owner dari folder wordpress tersebut menjadi www-data
mv wordpress /var/www/ chown www-data:www-data -R /var/www/wordpress
6. Selanjutnya yaitu pembuatan database untuk wordpress, namun sebelumnya pastikan untuk setup password root untuk mysql-servernya dahulu supaya aman
mysql_secure_installation
Nanti akan ada beberapa pertanyaan, silakan ikuti seperti berikut
Enter current password for root (enter for none): Remove anonymous users? [Y/n] y ... Success! Disallow root login remotely? [Y/n] y ... Success! Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
7. Lanjut kita buat database untuk wordpress. Disini kita buat nama databasenya yaitu wordpress dengan user wordpress
mysql -u root -p create database wordpress; create user wordpress@localhost identified by 'your_password'; grant all privileges on wordpress.* to wordpress@localhost identified by 'your_password'; flush privileges; exit
Untuk identified by ‘your_password’, silakan definisikan password untuk user wordpress. Pastikan mengingatnya karena nanti akan digunakan saat menjalankan installer wordpress.
8. Konfigurasi pembatasan maksimal upload file serta memory limit untuk wordpress, silakan edit file /etc/php/7.2/fpm/php.ini. Kemudian sesuaikan baris berikut ini
upload_max_filesize = 10M post_max_size = 10M memory_limit = 512M date.timezone = Asia/Jakarta
9. Pembuatan virtualhost untuk nama website misal pada postingan ini yaitu wordpress.rizkypratama.id, masuk ke directory /etc/nginx/sites-available
cd /etc/nginx/sites-available/ nano wordpress
10. Masukkan script berikut ini
### Without SSL server { listen 80; server_name wordpress.rizkypratama.id; rewrite ^(.*) https://wordpress.rizkypratama.id$1 permanent; } ### SSL Configuration server { access_log off; log_not_found off; error_log /var/log/nginx/wordpress.rizkypratama.id-error_log warn; listen 443 ssl http2; server_name wordpress.rizkypratama.id; ssl on; ssl_certificate /etc/nginx/ssl/commercial.pem; ssl_certificate_key /etc/nginx/ssl/commercial.pem; ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCMSHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCMSHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCMSHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSAAES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHERSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCMSHA256:AES256-GCM-SHA384:AES128:AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4; add_header Strict-Transport-Security "max-age=63072000; preload"; ssl_dhparam /etc/nginx/ssl/dhparams.pem; location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|wml|swf)$ { root /var/www/wordpress; expires max; add_header Pragma public; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; } location / { root /var/www/wordpress; index index.php index.html index.htm; # WordPress permalinks configuration try_files $uri $uri/ /index.php?$args; } # php-parsing location ~ .php$ { root /var/www/wordpress; try_files $uri =404; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_buffer_size 128k; fastcgi_read_timeout 150; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }
Untuk baris yang saya beri warna merah, bisa disesuaikan dengan keinginan masing-masing. Terutama pada bagian ssl_certificate. Pastikan kamu sudah memiliki file SSL Commercial, atau jika belum, bisa pakai SSL Lets Encrypt. Nanti akan ada 3 buah file, yaitu crt, ca dan key. Silakan gabungkan ketiga file tersebut dengan urutan sebagai berikut :
Digabung menjadi sebuah file pem
Baca Juga : Enable HTTP/2 pada Apache2 Ubuntu 16.04
11. Generate dhparam untuk meningkatkan reputasi SSL Certificate
openssl dhparam -out /etc/nginx/ssl/dhparams.pem 2048
12. Kalau sudah sesuai, aktifkan virtualhost tersebut dengan membuat shortcut file dari sites-available ke sites-enabled
ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
13. Setelah OK semua, silakan restart service nginx dan php7.2-fpm nya
service nginx restart service php7.2-fpm restart
14. Selanjutnya silakan buka browser kemudian akses ke nama website wordpress yang tadi didefinisikan pada virtualhost untuk melakukan instalasi wordpress. Pada tampilan awal yaitu pemilihan bahasa, pilih English (United States)
15. Selanjutnya Klik Lets go untuk mulai proses
16. Isikan sesuai pada saat pembuatan database pada step 8
17. Lalu akan muncul informasi bahwa komunikasi ke database sudah bisa, maka proses bisa dilanjut
18. Masukkan informasi seperti nama Website, kemudian username dan password admin untuk nanti login ke wp-admin
Baca Juga : Pertama Kali Menggunakan Gutenberg di WordPress
19. Pastikan muncul informasi Success seperti berikut ini, berarti instalasi wordpress sudah berhasil, silakan klik Log In untuk login ke wp-admin untuk melakukan management wordpressnya
20. Langkah terakhir dari pembahasan ini yaitu pengecekan kualitas konfigurasi SSL yang sudah kita setup, bisa ke alamat https://www.ssllabs.com/ssltest/ dan silakan masukkan alamat website wordpress yang sudah kamu setup. Kemudian cek dan tunggu hasilnya
21. Untuk hasil pengecekan kualitas SSL, mendapat nilai A+ dengan mengikuti konfigurasi seperti diatas
Cukup mudah bukan, mungkin cukup sekian untuk artikel kali ini, dan Alhamdulillah tugas kuliah satu persatu selesai. Akhir kata, Jangan Lupa Bahagia
Rizky Pratama. Tinggal di Bekasi, Jawa Barat. Seorang IT di salah satu perusahaan IT. Pengguna Mac, Linux dan Windows
Selain sebagai penulis di blog ini, saya juga penulis di blog saya yang lain, yaitu https://pratama.biz.id
Pada bulan April 2024 lalu, Ubuntu telah release versi terbaru yaitu Ubuntu 24.04 LTS, sehingga…
Ngga nyangka akhirnya saya bisa login kembali ke blog saya yang sudah berdebu ini, kali…
Beberapa waktu lalu, Excellent mendapatkan project migrasi Zimbra dari versi Open Source Ke Zimbra Network…
Bulan Oktober 2022 lalu, Apple resmi release MacOS terbaru mereka, yaitu MacOS Ventura. Beberapa fitur…
Tidak terasa sudah cukup lama saya tidak update tulisan pada blog ini lagi, akhirnya kali…
Tahun baru 2022 telah tiba, tidak terasa waktu berjalan begitu cepat, banyak cerita dan kenangan…