WordPress adalah sistem manajemen konten gratis, sumber terbuka, dan paling banyak digunakan di dunia. Ini adalah platform blogging yang sangat kuat yang dapat digunakan untuk menghosting Blog, Situs Portofolio, dan platform eCommerce. WordPress menggunakan Apache/Nginx sebagai server web, MariaDB/MySQL sebagai database, dan pemrosesan PHP. WordPress menyediakan banyak sekali 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 kami mengamankan server dengan menggunakan sertifikat SSL Let's Encrypt gratis.
Prasyarat
- Server yang menjalankan CentOS 8.
- Kata sandi root dikonfigurasi di server Anda.
- Nama domain yang valid diarahkan ke alamat IP server Anda.
Memulai
Secara default, SELinux diaktifkan di server CentOS 8. Jadi, Anda harus menonaktifkannya terlebih dahulu.
Anda dapat melakukannya dengan mengedit file /etc/selinux/config:
nano /etc/selinux/config
Lakukan perubahan berikut:
SELINUX=disabled
Simpan dan tutup file. Kemudian, restart server Anda untuk menerapkan perubahan.
Instal Server LEMP
Sebelum memulai, Anda perlu 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 sistem reboot:
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 akan 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 EDT; 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.
Konfigurasi Database WordPress
Secara default, server MariaDB tidak diamankan. Jadi, Anda harus mengamankannya terlebih dahulu. Anda dapat mengamankannya dengan perintah berikut:
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 diamankan, Anda akan mendapatkan output berikut:
Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Selanjutnya, masuk ke shell MariaDB dengan perintah berikut:
mysql -u root -p
Berikan kata sandi root Anda saat diminta kemudian buat database dan pengguna untuk WordPress dengan perintah berikut:
MariaDB [(none)]> CREATE DATABASE wpdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES on wpdb.* to 'wpuser'@'localhost' identified by 'password';
Selanjutnya, flush hak istimewa dan keluar dari shell MariaDB dengan perintah berikut:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Setelah database Anda dikonfigurasi, Anda dapat melanjutkan ke langkah berikutnya.
Unduh WordPress
Anda dapat mengunduh WordPress versi terbaru dengan perintah 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 menjadi nginx:
chown -R nginx: /var/www/html/wordpress/
Selanjutnya, ubah direktori menjadi wordpress dan ganti nama file konfigurasi default wordpress:
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
Tentukan 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', 'password' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' );
Simpan dan tutup file, setelah Anda selesai.
Konfigurasi Nginx untuk WordPress
Selanjutnya, Anda perlu membuat file konfigurasi virtual host Nginx untuk melayani WordPress. Anda dapat membuatnya dengan perintah berikut:
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 apakah ada kesalahan sintaks dengan perintah berikut:
nginx -t
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 layanan Nginx untuk menerapkan perubahan konfigurasi:
systemctl restart nginx
Mengakses Dasbor WordPress
WordPress diinstal dan dikonfigurasi, sekarang saatnya mengakses antarmuka web.
Buka browser web Anda 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 Instal WordPress tombol. Setelah instalasi selesai. Anda akan melihat halaman berikut:
Klik masuk tombol. Anda akan diarahkan ke halaman login WordPress:
Berikan nama pengguna, kata sandi admin Anda, dan klik tombol Masuk tombol. Anda akan melihat dasbor WordPress di halaman berikut:
Amankan WordPress dengan Let's Encrypt
Untuk mengamankan situs WordPress Anda dengan Let's Encrypt SSL gratis, Anda perlu menginstal klien Certbot Let's Encrypt 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 WordPress Anda.
certbot-auto --apache -d example.com
Anda akan diminta untuk memberikan alamat email dan menyetujui persyaratan layanan. Anda juga harus memilih apakah akan mengarahkan lalu lintas HTTP ke HTTPS atau tidak. Silakan pilih opsi yang sesuai dan tekan Enter. Setelah instalasi berhasil selesai, Anda akan 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
Siapkan Let's Encrypt Automatic Renewal
Sertifikat Let's Encrypt berlaku selama 90 hari. Jadi disarankan untuk memperbaharui sertifikat sebelum habis masa berlakunya. Anda dapat mengatur tugas Cron 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, setelah Anda selesai.
Kesimpulan
Dalam tutorial di atas, kita belajar cara menginstal dan mengkonfigurasi WordPress dengan Nginx di server CentOS. Kami 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 Anda sendiri dengan mudah.