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