Cara Install WordPress dan Let]s Encrypt di Nginx CentOS 8

WordPress adalah sistem manajemen konten free, open-source, dan paling banyak digunakan di dunia. WordPress adalah platform blog yang sangat kuat yang dapat digunakan untuk meng-host Blog, Situs Web Portofolio, dan platform eCommerce.

WordPress menggunakan Apache/Nginx sebagai web server , MariaDB/MySQL sebagai database dan PHP. WordPress menyediakan sejumlah besar tema dan plugin yang dapat digunakan untuk menyesuaikan fungsinya.

Dalam tutorial ini, kami akan menjelaskan cara menginstal WordPress dengan Nginx di server CentOS 8 dan kemudian mengamankan lalu lintas ke server dengan menggunakan sertifikat gratis SSL Let’s Encrypt SSL.

*Prasyarat*

· Server yang menjalankan CentOS 8. · Masuk sebagai root atau user dengan hak sudo · Nama domain yang valid diarahkan ke alamat IP server Anda.

*Mulai*

Secara default, SELinux diaktifkan di server CentOS 8. Jadi, Anda harus menonaktifkannya SELinux terlebih dahulu.

Anda dapat melakukan ini dengan mengedit file /etc/selinux/config :

sudo nano /etc/selinux/config

Buat perubahan berikut:

SELINUX=disabled

Simpan dan tutup file. Kemudian, restart server Anda untuk menerapkan perubahan.

*Instal LEMP Server*

Sebelum memulai, Anda harus menginstal Nginx, MariaDB, PHP dan paket lain yang diperlukan di server Anda. Anda dapat menginstal semuanya dengan menjalankan perintah berikut:

yum install nginx php php-cli php-curl php-zip php-mbstring php-mysqlnd php-fpm curl unzip mariadb-server -y

Setelah semua paket diinstal, mulai layanan Nginx, PHP-FPM, MariaDB dan aktifkan untuk memulai setelah reboot sistem:

systemctl start nginx systemctl enable nginx systemctl start mariadb systemctl enable mariadb systemctl start php-fpm systemctl enable php-fpm

Anda juga dapat memeriksa status layanan PHP-FPM dengan perintah berikut:

systemctl status php-fpm

Anda harus mendapatkan output berikut:

? php-fpm.service – The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-10-17 05:39:11 UTC; 4min 40s ago Main PID: 1475 (php-fpm) Status: “Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec” Tasks: 6 (limit: 5060) Memory: 28.5M CGroup: /system.slice/php-fpm.service ??1475 php-fpm: master process (/etc/php-fpm.conf) ??1478 php-fpm: pool www ??1479 php-fpm: pool www ??1480 php-fpm: pool www ??1481 php-fpm: pool www ??1482 php-fpm: pool www

Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager… Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

*Konfigurasikan Database WordPress*

Secara default, MariaDB tidak diamankan. Jadi, Anda perlu mengamankannya dengan

sudo mysql_secure_installation

Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:

Enter current password for root (enter for none): Set root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y

Setelah MariaDB diamankan, masuk ke shell MariaDB dengan perintah berikut:

sudo mysql -u root -p

Masukkan kata sandi root Anda saat diminta. Kemudian, buat database dan user database untuk CMS ExpressionEngine. Dalam Contoh ini, kita akan membuat nama database” wpdb, dengan nama user toni” dengan kata sandi GantiDenganPasswordDatabase,

MariaDB [(none)]> CREATE DATABASE wpdb; MariaDB [(none)]> GRANT ALL PRIVILEGES on wpdb.* to ‘toni’@’localhost’ identified by ‘GantiDenganPasswordDatabase’;

Selanjutnya, flush privilege dan keluar dari shell MariaDB dengan perintah berikut:

MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

*Download WordPress*

Pada perintah berikut ini, kita akan download WordPress versi terbaru dengan perintah wget berikut:

cd /var/www/html wget https://wordpress.org/latest.tar.gz

Setelah diunduh, ekstrak file yang diunduh dengan perintah berikut:

tar -xvzf latest.tar.gz

Selanjutnya, ubah kepemilikan direktori wordpress ke nginx:

chown -R nginx: /var/www/html/wordpress/

Selanjutnya, masuk ke direktori wordpress dan ganti nama file konfigurasi default wordpress dengan perintah cp :

cd /var/www/html/wordpress cp wp-config-sample.php wp-config.php

Selanjutnya, edit file wp-config.php di editor teks favorit Anda:

nano wp-config.php

Tetapkan informasi database Anda seperti yang ditunjukkan di bawah ini:

/** The name of the database for WordPress */ define( ‘DB_NAME’, ‘wpdb’ );

/** MySQL database username */ define( ‘DB_USER’, ‘wpuser’ );

/** MySQL database password */ define( ‘DB_PASSWORD’, ‘GantiDenganPasswordDatabase’ );

/** MySQL hostname */ define( ‘DB_HOST’, ‘localhost’ );

Simpan dan tutup file, ketika Anda selesai.

*Konfigurasi Nginx untuk WordPress*

Selanjutnya, Anda perlu membuat server block Nginx untuk melayani WordPress. Anda dapat membuatnya dengan perintah berikut:

sudo nano /etc/nginx/conf.d/wordpress.conf

Tambahkan baris berikut:

server { listen 80; server_name example.com; root /var/www/html/wordpress; index index.php;

access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log;

location = /favicon.ico { log_not_found off; access_log off; }

location = /robots.txt { allow all; log_not_found off; access_log off; }

location / { try_files $uri $uri/ /index.php?$args; }

location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; }

}

Simpan dan tutup file. Kemudian, periksa nginx untuk setiap kesalahan sintaks dengan perintah berikut:

nginx -t

Jika tidak ada kesalahan syntax, Anda akan mendapatkan output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Terakhir, restart Nginx service untuk menerapkan perubahan konfigurasi:

systemctl restart nginx

*Akses Instalasi WordPress*

Setelah konfigurasi pada server selesai, saatnya mengakses installer web.

Buka browser web dan ketik URL http://example.com. Anda akan diarahkan ke halaman berikut:

Berikan semua informasi yang diperlukan seperti nama situs, nama pengguna admin, kata sandi, email admin dan klik tombol *Install WordPress*. Setelah instalasi selesai. Anda akan melihat halaman berikut:

Klik pada tombol *login*. Anda akan diarahkan ke halaman login WordPress:

Berikan nama user admin, kata sandi, dan klik tombol *Log In*. Anda akan melihat dashboard WordPress di halaman berikut:

*Secure WordPress dengan Let’s Encrypt*

Untuk mengamankan lalu lintas situs WordPress Anda dengan Let’s Encrypt SSL, Anda harus menginstal Certbot Let’s Encrypt client di sistem Anda. Secara default, Certbot tidak tersedia di repositori default CentOS 8. Jadi, Anda perlu mengunduhnya dari situs web resmi Certbot.

Anda dapat mengunduh dan menginstal Certbot dengan perintah berikut:

wget https://dl.eff.org/certbot-auto mv certbot-auto /usr/local/bin/certbot-auto chown root /usr/local/bin/certbot-auto chmod 0755 /usr/local/bin/certbot-auto

Sekarang, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat SSL untuk situs web WordPress Anda.

certbot-auto –apache -d example.com

Anda akan diminta untuk memberikan alamat email dan menyetujui persyaratan layanan. Anda juga perlu memilih untuk mengarahkan lalu lintas HTTP ke HTTPS atau tidak. Silakan pilih opsi yang sesuai dan tekan Enter. Setelah instalasi berhasil diselesaikan, Anda harus mendapatkan output berikut:

IMPORTANT NOTES: – Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-08-14. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the “certonly” option. To non-interactively renew *all* of your certificates, run “certbot renew” – If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

*Setting Update Otomatis” Let’s Encrypt*

Sertifikat Let’s Encrypt valid selama 90 hari. Jadi disarankan untuk memperbarui sertifikat sebelum habis masa berlakunya. Anda dapat mengatur Cron job untuk memperbarui sertifikat secara otomatis.

Untuk melakukannya, buat crontab dengan perintah berikut:

crontab -e

Tambahkan baris berikut:

0 0,12 * * * root python -c ‘import random; import time; time.sleep(random.random() * 3600)’ && /usr/local/bin/certbot-auto renew

Simpan dan tutup file, ketika Anda selesai.

*Kesimpulan*

Dalam tutorial di atas, kita belajar cara menginstal dan mengkonfigurasi WordPress dengan Nginx di server CentOS.

kita juga telah mempelajari cara mengamankan situs WordPress dengan Let’s Encrypt SSL gratis. Saya harap Anda sekarang dapat dengan mudah meng-host situs web WordPress sendiri dengan mudah.

Leave a Reply

Your email address will not be published.