Skip to main content

Add WordPress Site

Di tutorial ini kita akan menambahkan website dengan domain mitra.web.id

Create User

Buat user untuk website yang ingin kita buat

sudo useradd mitra

Masukkan user tersebut ke group www-data

sudo usermod -a -G mitra www-data

Create Folder

Buat folder untuk website yang ingin kita buat

sudo mkdir -p /home/mitra/mitra.web.id/public
sudo mkdir -p /home/mitra/mitra.web.id/logs

Jadikan user yang kita buat sebelumnya sebagai pemilik folder

sudo chown -R mitra:mitra /home/mitra

Ganti mitra dengan user yang ingin dibuat Ganti domain.com dengan domai yang ingin digunakan

Remove/Rename Default PHP-FPM Pool

Jika masih ada default pool, dihapus/rename saja

sudo mv /etc/php/8.3/fpm/pool.d/www.conf /etc/php/8.3/fpm/pool.d/www.conf.bak

Create PHP-FPM Pool Config

Buat file PHP-FPM pool menggunakan nano

sudo nano /etc/php/8.3/fpm/pool.d/mitra.conf

Isi dengan config berikut:

[mitra]
user = mitra
group = mitra

listen = /run/php/php-mitra.sock

listen.owner = www-data
listen.group = www-data

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

php_admin_value[memory_limit] = 256M
php_admin_value[upload_max_filesize] = 64M
php_admin_value[post_max_size] = 64M
php_admin_value[opcache.enable_file_override] = 1
php_admin_value[disable_functions] = exec,passthru,shell_exec,system

Simpan dengan Ctrl+O lalu keluar editor dengan Ctrl+X

Restart PHP-FPM

Periksa apakah konfigurasi yang kita ubah aman:

sudo php-fpm8.3 -t

Jika aman, restart:

sudo service php8.3-fpm restart

Get SSL certificate

Sebelum request certificate pastikan A record pada domain sudah diarahkan ke IP VPS Buat sertifikat let's encrypt:

sudo certbot --nginx certonly -d mitra.web.id -d www.mitra.web.id

Add nginx Config for New Site

Buat konfigurasi nginx untuk website yang ingin dibuat:

sudo nano /etc/nginx/sites-available/mitra.web.id

Isi dengan konfigurasi berikut:

server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;

server_name www.mitra.web.id;

ssl_certificate /etc/letsencrypt/live/mitra.web.id/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mitra.web.id/privkey.pem;

access_log /home/mitra/mitra.web.id/logs/access.log;
error_log /home/mitra/mitra.web.id/logs/error.log;

root /home/mitra/mitra.web.id/public/;
index index.php;

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

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php-mitra.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}

server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;

server_name mitra.web.id;

ssl_certificate /etc/letsencrypt/live/mitra.web.id/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mitra.web.id/privkey.pem;

return 301 https://www.mitra.web.id$request_uri;
}

server {
listen 80;
listen [::]:80;

server_name mitra.web.id www.mitra.web.id;

return 301 https://www.mitra.web.id$request_uri;
}

Buat symlink ke sites-enabled

sudo ln -s /etc/nginx/sites-available/mitra.web.id /etc/nginx/sites-enabled/mitra.web.id

Restart nginx

Periksa apakah konfigurasi yang kita ubah aman

sudo nginx -t

Jika aman, restart

sudo service nginx restart

Access MariaDB

Log in to the MariaDB database server.

sudo mariadb -u root -p

masukkan password yang sudah dibuat sebelumnya

Create database

CREATE DATABASE mitra_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;

Create user

CREATE USER 'mitra_user'@'localhost' IDENTIFIED BY 'Workshop@WPBogor2025';

Grant privilege

GRANT ALL PRIVILEGES ON mitra_db.* TO 'mitra_user'@'localhost';

Flush/refresh privileges

FLUSH PRIVILEGES;

Keluar dari MariaDB

exit;

Ganti user dan pindah ke folder WordPress

Ganti user dengan pemilik website

sudo su mitra

Pindah ke folder website yang telah dibuat sebelumnya

cd /home/mitra/mitra.web.id/public

Download WordPress

Download WordPress terbaru

wp core download

Konfigure database

wp core config --dbname=mitra_db --dbuser=mitra_user --dbpass='Workshop@WPBogor2025'

Install WordPress

wp core install --skip-email --url=https://www.mitra.web.id --title='Workshop WPBogor' --admin_user=akah --admin_email=[email protected] --admin_password='password'

Uninstall Plugin dan Theme yang tidak diperlukan

wp plugin delete akismet
wp plugin delete hello
wp theme delete twentytwentyfour
wp theme delete twentytwentythree