Cara Install WordPress di AlmaLinux 9 dengan Nginx
WordPress tetap menjadi salah satu content management system terpopuler secara global, memungkinkan pengguna untuk membuat situs web dan blog dinamis dengan mudah. Menginstal WordPress di AlmaLinux 9, didukung oleh Nginx, memberikan landasan yang kuat untuk pengembangan web dan pembuatan konten. Pada tutorial ini kita akan belajar bagaimana cara instalasi WordPress di AlmaLinux 9 dengan menggunakan Nginx web server.
Tutorial Environment
Pada tutorial ini menggunakan server, sistem operasi, dan perangkat lunak berikut:
- Vultr Cloud Server: 1 CPU, 1 GB RAM, 32 GB Storage
- Operating System: AlmaLinux 9
- Domain: aminlabs.my.id
- SSL: Let’s Encrypt
- Web Server: Nginx v1.20
- PHP: PHP v8.2
- Database: MariaDB v10.5
- WordPress: WordPress v6.4.3
Catatan: Daftar di sini untuk mendapatkan free credit $100 dari Vultr.
Langkah 1: Update system packages
Login ke server dan lakukan update system:
1 | dnf update |
Catatan: Tutorial ini menggunakan user root.
Langkah 2: Install Nginx web server
Jalankan perintah berikut untuk menginstal server web Nginx di AlmaLinux:
1 | dnf install nginx |
Setelah instalasi selesai, jalankan dan aktifkan Nginx service:
1 2 | systemctl start nginx systemctl enable nginx |
Kita dapat memverifikasi status Nginx untuk memastikannya berjalan tanpa masalah apa pun:
1 | systemctl status nginx |
Buka port HTTP dan HTTPS di firewall, jalankan perintah berikut:
1 2 3 | firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload |
Langkah 3: Install MariaDB database
Install server MariaDB menggunakan perintah berikut:
1 | dnf install mariadb-server |
Jalankan dan aktifkan MariaDB service:
1 2 | systemctl start mariadb systemctl enable mariadb |
Langkah 4: Create a Database
Login ke MariaDB server:
1 | mysql |
Membuat database untuk WordPress:
1 2 3 4 | CREATE DATABASE aminlabs; GRANT ALL PRIVILEGES ON aminlabs.* TO 'aminlabs'@'localhost' IDENTIFIED BY 'secretpassword'; FLUSH PRIVILEGES; exit |
Langkah 5: Install PHP 8.2
Untuk menginstal PHP 8.2 di AlmaLinux 9, kita perlu menambahkan repositori EPEL dan repositori REMI. Repositori ini menyediakan paket tambahan, termasuk versi PHP terbaru yang tidak tersedia di repositori default AlmaLinux.
Repositori EPEL (Paket Ekstra untuk Enterprise Linux) menyediakan paket tambahan untuk CentOS dan turunannya seperti AlmaLinux. Install repositori EPEL menggunakan perintah berikut:
1 | dnf install epel-release |
Install repositori REMI dengan menjalankan perintah berikut:
1 | dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm |
Setelah kita menginstal repositori REMI, aktifkan repositori PHP 8.2:
1 | dnf module enable php:remi-8.2 |
Sekarang, kita dapat menginstal PHP 8.2 dan modul PHP yang diperlukan:
1 | dnf install php82-php-fpm php82-php-cli php82-php-curl php82-php-mysqlnd php82-php-gd php82-php-opcache php82-php-zip php82-php-intl php82-php-common php82-php-bcmath php82-php-imagick php82-php-xmlrpc php82-php-json php82-php-readline php82-php-memcached php82-php-redis php82-php-mbstring php82-php-apcu php82-php-xml php82-php-dom php82-php-redis php82-php-memcached php82-php-memcache |
Membuat symbolic link untuk php82
:
1 | ln -s /usr/bin/php82 /usr/bin/php |
Buka file konfigurasi pool PHP-FPM:
1 | nano /etc/opt/remi/php82/php-fpm.d/www.conf |
Sesuaikan dengan konfigurasi di bawah ini:
1 2 3 4 5 | user = nginx group = nginx listen.owner = nginx listen.group = nginx ;listen.acl_users = apache |
Sesuaikan dengan konfigurasi di bawah ini:
1 2 3 | systemctl enable php82-php-fpm systemctl start php82-php-fpm systemctl status php82-php-fpm |
Langkah 6: Konfigurasi Server Block
Membuat directory untuk document root aminlabs.my.id
:
1 | mkdir /var/www/aminlabs.my.id |
Membuat file konfigurasi server block untuk domain aminlabs.my.id
:
1 | nano /etc/nginx/conf.d/aminlabs.my.id.conf |
Masukkan konfigurasinya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | server { listen 80; server_name www.aminlabs.my.id aminlabs.my.id; root /var/www/aminlabs.my.id; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $fastcgi_script_name =404; include fastcgi_params; fastcgi_pass unix:/var/opt/remi/php82/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT $realpath_root; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; } access_log /var/log/nginx/aminlabs.my.id_access.log; error_log /var/log/nginx/aminlabs.my.id_error.log; } |
Restart Nginx:
1 | systemctl restart nginx |
Langkah 7: Install SSL from Let’s Encrypt
Let’s Encrypt adalah certificate authority yang menyediakan sertifikat SSL secara gratis, otomatis, dan terbuka untuk mengaktifkan HTTPS (SSL/TLS) di situs web. Diluncurkan pada tahun 2015 oleh Internet Security Research Group (ISRG) dengan tujuan untuk memudahkan pemilik situs web mengamankan situs web mereka dengan HTTPS. Sertifikat Let’s Encrypt dipercaya oleh semua browser utama dan berlaku selama 90 hari, setelah itu dapat diperpanjang secara otomatis.
Install Certbot dan plugin untuk Nginx web server:
1 | dnf install certbot python3-certbot-nginx |
Minta sertifikat SSL untuk aminlabs.my.id dan www.aminlabs.my.id. Alamat email digunakan untuk mengirimkan pemberitahuan ketika sertifikat SSL akan segera habis masa berlakunya.
1 | certbot --non-interactive -m admin@aminlabs.my.id --agree-tos --no-eff-email --nginx -d aminlabs.my.id -d www.aminlabs.my.id --redirect |
Contoh pesan yang ditampilkan ketika permintaan sertifikat SSL berhasil:
1 2 3 4 5 6 7 8 9 10 11 12 | Account registered. Requesting a certificate for aminlabs.my.id and www.aminlabs.my.id Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/aminlabs.my.id/fullchain.pem Key is saved at: /etc/letsencrypt/live/aminlabs.my.id/privkey.pem This certificate expires on 2024-05-03. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background.Deploying certificate Successfully deployed certificate for aminlabs.my.id to /etc/httpd/conf.d/aminlabs.my.id-le-ssl.conf Successfully deployed certificate for www.aminlabs.my.id to /etc/httpd/conf.d/aminlabs.my.id-le-ssl.conf Congratulations! You have successfully enabled HTTPS on https://aminlabs.my.id and https://www.aminlabs.my.id |
Langkah 8: Install WordPress via WP-CLI
WP-CLI (WordPress Command Line Interface) adalah alat yang ampuh untuk mengelola instalasi WordPress dari baris perintah. Ini memberikan cara yang nyaman dan efisien untuk melakukan berbagai tugas seperti menginstal, memperbarui, dan mengelola situs WordPress tanpa perlu menggunakan browser web.
Dengan WP-CLI, kita dapat mengotomatiskan tugas-tugas WordPress, membuat skrip operasi yang kompleks, dan berinteraksi dengan database situs WordPress langsung dari antarmuka baris perintah. Ini menjadikannya alat yang sangat diperlukan bagi pengembang, administrator sistem, dan siapa saja yang mengelola banyak situs WordPress.
Mulailah dengan menginstal WP-CLI di server. Mengunduh file Phar dan membuatnya dapat dieksekusi untuk penggunaan global:
1 2 | wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O /usr/local/bin/wp chmod +x /usr/local/bin/wp |
Berpindah ke direktori document root:
1 | cd /var/www/aminlabs.my.id |
Download WordPress core terbaru dengan menggunakan WP-CLI:
1 | wp core download |
Membuat wp-config.php
dengan memasukkan informasi database yang dibutuhkan:
1 2 3 4 5 | wp config create \ --dbname="aminlabs" \ --dbuser="aminlabs" \ --dbpass="secretpassword" \ --dbhost="localhost" |
Install WordPress dan membuat akun admin:
1 2 3 4 5 6 | wp core install \ --url="https://www.aminlabs.my.id" \ --title="AminLabs Blog" \ --admin_user="admin" \ --admin_password="secretpassword" \ |
Pesan yang ditampilkan ketika instalasi WordPress berhasil:
1 | Success: WordPress installed successfully. |
Ubah pengguna dan grup file WordPress menjadi pengguna dan grup server web Nginx:
1 | chown -R nginx:nginx /var/www/aminlabs.my.id |
Proses instalasi WordPress telah selesai. Browse domain untuk mencoba hasil instalasi.