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 =https://cdn.linuxid.net/favicon.ico?x99223 { 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.