Setup Web Server & CasaOS di VPS

January 02, 2026


Menyewa VPS memberi kebebasan penuh dalam mengelola server sesuai kebutuhan aplikasi. Dengan konfigurasi yang tepat, satu VPS dapat berfungsi sebagai web server modern untuk menjalankan aplikasi Laravel, REST API, hingga backend service lain yang membutuhkan performa dan stabilitas.

Pada artikel ini, kita akan membangun lingkungan web server dari kondisi awal VPS hingga siap digunakan untuk pengembangan dan deployment aplikasi.


Gambaran Umum Setup
Server yang akan kita bangun memiliki fungsi utama :

  • Web Server menggunakan Nginx
  • Backend PHP dengan PHP 8.2
  • Database Server MySQL (mendukung koneksi remote)
  • Cache & Queue Redis
  • Frontend Tooling Node.js (LTS)
  • Home Server Dashboard CasaOS

Memulai: Update Sistem
Langkah pertama yang tidak boleh dilewatkan adalah memastikan sistem dalam kondisi terbaru. Ini penting untuk keamanan dan kompatibilitas package.

sudo apt update && sudo apt upgrade -y

Menyiapkan Tool Dasar
Sebelum masuk ke instalasi utama, kita pasang beberapa paket pendukung yang hampir selalu dibutuhkan dalam pengelolaan server.

sudo apt install -y curl wget git net-tools htop

Paket ini membantu kita untuk:

  • Mengunduh script dan resource eksternal
  • Mengelola repository kode
  • Mengecek jaringan dan port aktif
  • Memantau performa server secara real-time

Mengubah Mesin Menjadi Home Server dengan CasaOS
CasaOS memberikan antarmuka web yang memudahkan pengelolaan server, terutama untuk Docker, storage, dan service lain.

curl -fsSL https://get.casaos.io | sudo bash

Secara default, CasaOS berjalan di port 80. Karena itu, nantinya kita akan menyesuaikan konfigurasi Nginx agar tidak terjadi bentrok port.


Menyiapkan Web Server: Nginx
Kita lanjutkan dengan memasang Nginx sebagai web server utama.

sudo apt install nginx -y
systemctl status nginx 

Karena port 80 sudah digunakan CasaOS, kita ubah port Nginx menjadi 8080.

sudo nano /etc/nginx/sites-available/default

Ubah baris berikut:

listen 8080;

Setelah itu, restart Nginx:

sudo systemctl restart nginx

Sekarang Nginx bisa diakses melalui :
http://IP_SERVER:8080


Menyiapkan PHP 8.2
Agar Laravel berjalan optimal, kita pasang PHP 8.2 beserta ekstensi yang umum digunakan.

sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-common \ php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip php8.2-gd \ php8.2-mysql php8.2-bcmath php8.2-intl php8.2-readline 

Jika sistem tidak menemukan package PHP 8.2, tambahkan repository resmi PHP:

sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update 

Restart PHP-FPM:

sudo systemctl restart php8.2-fpm

Pastikan versi PHP sudah sesuai:

php -v 


Menghubungkan Nginx dengan PHP-FPM
Agar Nginx bisa memproses file PHP, kita perlu menghubungkannya ke PHP-FPM.

sudo nano /etc/nginx/sites-available/default

Tambahkan konfigurasi berikut di dalam blok server {}:

location ~ \.php$ {
include snippets/fastcgi-php.conf; 
fastcgi_pass unix:/run/php/php8.2-fpm.sock; 

Restart Nginx:

sudo systemctl restart nginx

Menguji PHP
Untuk memastikan semuanya berjalan, buat file test sederhana.

sudo nano /var/www/html/info.php

Isi dengan:

<?php phpinfo();

Akses melalui browser:

http://IP_SERVER:8080/info.php

Jika halaman informasi PHP muncul, berarti Nginx dan PHP sudah terhubung dengan baik.


Mengelola Dependency dengan Composer
Composer adalah tool wajib untuk pengembangan Laravel.

sudo apt install composer -y
composer -v 

Menyiapkan Database Server: MySQL
Instal MySQL server:

sudo apt install mysql-server -y
systemctl status mysql 

Agar database bisa diakses dari luar server, kita ubah konfigurasi bind address.

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Ubah menjadi:

bind-address = 0.0.0.0

Restart MySQL:

sudo systemctl restart mysql

Membuat User MySQL untuk Akses Remote
Masuk ke MySQL:

sudo mysql 
CREATE USER 'nama_user'@'%' IDENTIFIED BY 'password_user';
GRANT ALL PRIVILEGES ON *.* TO 'nama_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES; 

Jika koneksi masih bermasalah, ubah metode autentikasi:

ALTER USER 'nama_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password_user';
FLUSH PRIVILEGES; 

Menambahkan Redis untuk Cache & Queue
Redis sering digunakan Laravel untuk cache, session, dan queue.

sudo apt install redis-server -y

Edit konfigurasi Redis:

sudo nano /etc/redis/redis.conf

Ubah:

supervised system

Restart Redis:

sudo systemctl restart redis-server

Test Redis:

redis-cli ping

Jika muncul PONG, Redis siap digunakan.


Menyiapkan Node.js (LTS)
Node.js dibutuhkan untuk build asset frontend seperti Vite, Vue, atau React.

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs 

Cek versi:

node -v npm -v

Penutup
Dengan mengikuti langkah-langkah di atas, Server VPS Anda kini telah berubah menjadi home server dan web server multifungsi.

 

Tags:
Web Server
Nginx
Category : DevOps / Server Author : Didi Irawan