Deploy VPS
Ini adalah catatan singkat mengenai masalah/issue yang ada pada saat deploy ke VPS:
HTTP & HTTPS​
app\Providers\AppServiceProvider.php
\Illuminate\Support\Facades\URL::forceScheme('https');
CORS​
Permission Storage​
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
sudo chmod -R 775 storage
sudo chmod -R 775 bootstrap/cache
Container Persistent Storage Symlink ke Dir HOST​
Reverse Proxy​
Deploy​
Create VPS (Virtual Private Server)​
Untuk latihan anda bisa menggunakan layanan sewa VPS (Virtual Private Server) yang pembayarannya hanya saat digunakan bukan bulanan atau tahunan melainkan bayar per jam, istilah lainnya itu pay as you go
. Contoh saja IDCouldHost
Anda dapat membantu saya dengan menggunakan:
- Referral link: https://console.idcloudhost.com/referral/4k86mh
- Referral code:
4k86mh
Pada tanggal 25 Januari 2025 Top Up minimal pada IDCouldHost
adalah Rp55.000 + Rp6.050 PPN 11%
= Rp61.050 + Rp2.000 admin dari e-wallet saya
= Rp63.050 Total
.
Jadi siapkan saja uang sekitar Rp65.000 untuk belajar.
Jika sudah mari kita buat VPS. Spekfikasi VPS bebas yang penting menggunakan OS (Operating System) Ubuntu
. Karena panduan saya menggunakan OS Ubuntu. Saya sarankan pada server gunakanlah OS seri Long Term Support (LTS)
karena lebih lama dalam support atau perawatan OS tersebut. Misal saya menggunakan Ubuntu 24.04 LTS
.
Tentang VPS IDCouldhost yang saya maksud:
Apa yang terjadi jika VPS-nya dimatikan (shutdown)?
Jawaban: Anda hanya menyewa storage disk/hdd saja 20GB = Rp12.000
Apa yang terjadi jika VPS-nya dihapus?
Jawaban: Yaa, Anda tidak keluar biaya lagi, jadi bisa disimpan buat latihan nanti.
Pantangan Saat Deploy Ke Server Linux​
- Jangan gunakan
root
user untuk login SSH dengan password, kalau bisa gunakan user biasa dan gunakan SSH key.
Login ke VPS dengan SSH​
Contoh:
- IP yang didapatkan dari VPS:
100.100.100.100
Login SSH root user
Jika muncul pertanyaan:
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Ketik yes
lalu enter
. Nanti anda akan diminta masukan password dari user tersebut misal user root
.
[email protected]'s password:
Ketik password lalu enter. Catatan: password tidak tampil demi keamanan jadi saat ketik sebenarnya tulisannya masuk hanya saja di sembunyikan.
Jangan lupa update OS:
sudo apt update
sudo apt upgrade -y
Jika tidak menggunakan -y
anda harus ketik y
lalu enter
. Karena perlu konfirmasi.
Menambahkan User (Opsional)​
Menambahkan user baru untuk login ke OS Ubuntu diperlukan demi keamanan karena user root
itu terlalu OP (Over Power) jadi kita harus membuat user lain. Biasanya saat membuat VPS auto dibuatkan user jadi ini sifatnya opsional jika sudah dibuatkan oleh penyedia layanan VPS.
Perintah di bawah ini dalam mode user root@ubuntu:~#
Membuat user baru:
adduser kaesa
Masukan password, etc.
Memodifikasi user dengan menambahkan user kaesa
ke dalam grup sudo
usermod -aG sudo kaesa
Ganti user root
ke user kaesa
. 'switch user'
su - kaesa
Mengatur SSH​
Login dengan user kaesa
Generate SSH Key​
Pertama buka terminal/git bash pada laptop, lalu jalankan perintah dibawah:
cd ~/.ssh
ssh-keygen -t rsa -b 2048 -C "idcouldhost.com/kaesa-ubuntu"
Saya biasanya mengubah nama file key SSH:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/kaesa/.ssh/id_rsa): id_rsa_kaesa
Anda bisa menambahkan passphrase untuk keamanan tambahan.
Nanti akan dibuatkan dua file:
id_rsa_kaesa
(Private SSH Key)id_rsa_kaesa.pub
(Public SSH Key)
Melihat isi file dan directory dengan perintah:
ll
Copy Public SSH Key
ke server
ssh-copy-id [email protected]
Mematikan kemampuan login ssh dengan root user​
sudo nano /etc/ssh/sshd_config
Cari:
PremitRootLogin no # Default: yes
PubkeyAuthentication yes # Default: commented/disabled ada pagar '#' didepan
AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2 # Default: commented/disabled
PasswordAuthentication no # Default: commented/disabled dan yes
PermitEmptyPasswords no # Default: commented/disabled
sudo systemctl restart ssh
Membuat alias login ssh​
cd ~/.ssh
sudo nano config
Host kaesa
User kaesa
Hostname 100.100.100.100
Port 22
IdentityFile ~/.ssh/id_rsa_kaesa
Cara cepat login ke server:
ssh kaesa
Perintah di atas itu quick login dari ssh [email protected] -p 22 -i ~/.ssh/id_rsa_kaesa
Install php
​
sudo add-apt-repository ppa:ondrej/php -y
sudo apt install php8.3 php8.3-cli -y
sudo apt install php8.3-common php8.3-bcmath php8.3-mbstring php8.3-xml php8.3-curl php8.3-gd php8.3-zip -y
sudo apt install php8.3-fpm php8.3-opcache php8.3-imap php8.3-intl php8.3-readline php8.3-soap -y
sudo apt install php8.3-mysql -y
sudo apt install php8.3-pgsql -y
sudo apt install php8.3-sqlite3
php -v