CMS
WordPress

WordPress

WordPress adalah Content Management System (CMS) berbasis open source yang digunakan untuk membuat dan mengelola berbagai jenis website, seperti blog, situs perusahaan, toko online, hingga portal berita. WordPress pertama kali dirilis pada tahun 2003 oleh Matt Mullenweg dan Mike Little, dengan fokus awal pada platform blogging. Namun, seiring perkembangannya, WordPress menjadi salah satu CMS paling populer di dunia dengan dukungan ekosistem tema, plugin, dan komunitas yang luas.

WordPress dikenal karena kemudahannya dalam penggunaan, fleksibilitas dalam kustomisasi, dan dukungan yang luas dari komunitas global. Dibangun dengan PHP dan menggunakan MySQL/MariaDB sebagai database-nya, WordPress menawarkan berbagai fitur seperti editor blok (Gutenberg), manajemen konten, SEO-friendly, dan dukungan plugin untuk menambahkan fungsionalitas tambahan.

1. Persyaratan Sistem

System requirements untuk WordPress:

  • PHP 7.4 +
  • MySQL 8.0+ atau MariaDB 10.5+
  • Nginx atau Apache dengan mod_rewrite
  • Dukungan HTTPS

Sebelum memulai deploy, siapkan:

  • VPS atau server dengan OS Ubuntu LTS
  • Akses SSH ke server
  • Domain yang sudah diarahkan ke server

2. Persiapan Server

Update sistem

sudo apt update 
sudo apt upgrade -y

Install MariaDB

sudo apt install mariadb-server -y

Pasang repository PPA ondrej/php

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update 
sudo apt upgrade -y

Install PHP 8.3 dan extension yang dibutuhkan

sudo apt install php8.3 php8.3-cli php8.3-common \
  php8.3-apcu php8.3-mbstring php8.3-gd php8.3-intl \
  php8.3-xml php8.3-soap php8.3-bcmath php8.3-mysql php8.3-zip \
  php8.3-curl php8.3-tidy php8.3-imagick php-pear -y

Install WP-CLI

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

3. Buat Database

Login ke MariaDB:

sudo mysql

Buat database contohcom dan user 'contohcom'@'localhost'

CREATE DATABASE contohcom;
CREATE USER 'contohcom'@'localhost' IDENTIFIED BY 'rahasia';
GRANT ALL PRIVILEGES ON contohcom.* TO 'contohcom'@'localhost';
FLUSH PRIVILEGES;
EXIT;

4. Konfigurasi Web Server

Apache

Install Apache

sudo apt install apache2 libapache2-mod-php8.3 -y

Buat virtual host

sudo nano /etc/apache2/sites-available/contoh.com.conf

Masukkan konfigurasinya

<VirtualHost *:80>
    ServerName www.contoh.com
    ServerAlias contoh.com
    DocumentRoot /var/www/contoh.com
    <Directory /var/www/contoh.com>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /var/log/apache2/contoh.com_error.log
    CustomLog /var/log/apache2/contoh.com_access.log combined
</VirtualHost>

Aktifkan modul dan virtual host

sudo a2enmod rewrite
sudo a2ensite contoh.com.conf
sudo systemctl restart apache2

Install certbot untuk Apache

sudo apt install certbot python3-certbot-apache -y

Request sertifikat SSL

sudo certbot --non-interactive \
    -m [email protected] \
    --agree-tos \
    --no-eff-email \
    --apache -d contoh.com -d www.contoh.com \
    --redirect	

Nginx

Install Nginx

sudo apt install nginx php8.3-fpm -y

Buat virtual host

sudo nano /etc/nginx/sites-available/contoh.com.conf

Masukkan konfigurasinya

server {
    listen 80;
    server_name www.contoh.com contoh.com;
    root /var/www/contoh.com;
    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:/run/php/php-fpm.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/contoh.com_access.log;
    error_log /var/log/nginx/contoh.com_error.log;
}

Aktifkan virtual host

sudo ln -s /etc/nginx/sites-available/contoh.com.conf /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Install certbot untuk Nginx

sudo apt install certbot python3-certbot-nginx -y

Request sertifikat SSL

sudo certbot --non-interactive \
    -m [email protected] \
    --agree-tos \
    --no-eff-email \
    --nginx -d contoh.com -d www.contoh.com \
    --redirect	

4. Install WordPress

Buat direktori untuk WordPress dengan nama domain contoh.com

cd /var/www
mkdir contoh.com
cd contoh.com

Download WordPress

sudo wp core download --allow-root 

Buat file konfigurasi wp-config.php

sudo wp config create \
    --dbname="contohcom" \
    --dbuser="contohcom" \
    --dbpass="rahasia" \
    --dbhost="localhost" \
    --allow-root

Install WordPress

sudo wp core install \
    --url="https://www.contoh.com" \
    --title="Contoh.Com" \
    --admin_user="admin" \
    --admin_password="password" \
    --admin_email="[email protected]" \
    --allow-root

Ubah user dan group direktori

sudo chown -R www-data:www-data /var/www/contoh.com

Instalasi WordPress selesai. Akses https://www.contoh.com untuk menguji hasilnya.