7.5 KiB
SERVER_REQUIREMENTS.md - Database Kesiswaan
Panduan ini menjelaskan requirement server dan perintah instalasi yang dibutuhkan agar aplikasi Database Kesiswaan bisa berjalan dengan benar di Ubuntu 22.04 LTS tanpa aaPanel.
Fokus file ini adalah:
- versi software yang direkomendasikan
- package yang wajib diinstall
- extension PHP yang dibutuhkan aplikasi
- requirement Node.js / npm untuk build asset frontend
- Composer untuk dependency PHP
- command verifikasi environment setelah instalasi
1. Target Environment
Dokumen ini diasumsikan untuk:
- OS: Ubuntu 22.04 LTS
- Web server: Nginx atau Apache
- PHP: 8.3
- Database: MySQL / MariaDB
- Node.js: 20 LTS
- Composer: 2.x
Aplikasi ini sudah terbukti butuh Node modern untuk Vite build, dan butuh extension PHP tertentu agar Composer + Laravel bisa jalan normal.
2. Requirement Utama Aplikasi
PHP
Gunakan:
- PHP 8.3
PHP Extensions wajib
Minimal extension yang harus tersedia:
- bcmath
- curl
- dom
- fileinfo
- gd
- intl
- mbstring
- openssl
- pdo
- pdo_mysql
- tokenizer
- xml
- zip
Node.js
Gunakan:
- Node.js 20 LTS
Vite di project ini tidak kompatibel dengan Node 18.x lama pada deploy yang diuji. Minimal aman gunakan Node 20.
npm
- ikut dari Node.js 20
- pastikan
npmbisa install dependency project dan menjalankannpm run build
Composer
Gunakan:
- Composer 2.x
Database
- MySQL 8+ atau MariaDB yang kompatibel
- database, username, dan password harus disiapkan sebelum migrate
3. Instalasi Paket Dasar Ubuntu 22
Jalankan:
sudo apt update
sudo apt install -y software-properties-common curl git unzip ca-certificates lsb-release apt-transport-https gnupg
4. Instal PHP 8.3 di Ubuntu 22
Karena Ubuntu 22 default belum selalu menyediakan PHP 8.3 standar, gunakan repository Ondrej PHP.
4.1 Tambahkan repository PHP
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
4.2 Install PHP 8.3 + extension yang dibutuhkan
sudo apt install -y \
php8.3 \
php8.3-cli \
php8.3-fpm \
php8.3-common \
php8.3-bcmath \
php8.3-curl \
php8.3-gd \
php8.3-intl \
php8.3-mbstring \
php8.3-mysql \
php8.3-xml \
php8.3-zip
php8.3-xmlpenting karena menyediakanext-domdanext-xml, yang dibutuhkan Composer package di aplikasi ini.
4.3 Verifikasi PHP
php -v
php -m | grep -E 'bcmath|curl|dom|fileinfo|gd|intl|mbstring|pdo_mysql|xml|zip'
Minimal pastikan output memuat:
- dom
- xml
- pdo_mysql
- mbstring
- curl
- zip
- intl
- gd
- bcmath
5. Install Composer 2.x
5.1 Download installer Composer
cd /tmp
curl -sS https://getcomposer.org/installer -o composer-setup.php
5.2 Install Composer ke system
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
5.3 Verifikasi Composer
composer --version
Target aman:
- Composer 2.x
6. Install Node.js 20 LTS + npm
Gunakan NodeSource.
6.1 Tambahkan repository Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
6.2 Install Node.js
sudo apt install -y nodejs
6.3 Verifikasi Node dan npm
node -v
npm -v
Target aman:
node -v→v20.x.xnpm -v→ versi bawaan Node 20
Jangan deploy app ini dengan Node 18 lawas jika Vite build sudah terbukti meminta Node 20+.
7. Install Web Server
Pilih salah satu.
Opsi A - Nginx
sudo apt install -y nginx
Opsi B - Apache
sudo apt install -y apache2
Kalau pakai Apache, aktifkan rewrite:
sudo a2enmod rewrite
sudo systemctl restart apache2
8. Install Database Server
Opsi A - MySQL
sudo apt install -y mysql-server
Opsi B - MariaDB
sudo apt install -y mariadb-server
Lalu buat database dan user aplikasi.
Contoh MySQL/MariaDB:
CREATE DATABASE database_kesiswaan CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'kesiswaan'@'localhost' IDENTIFIED BY 'PASSWORD_ANDA';
GRANT ALL PRIVILEGES ON database_kesiswaan.* TO 'kesiswaan'@'localhost';
FLUSH PRIVILEGES;
Sesuaikan nama database/user/password sesuai
.envdeploy.
9. Requirement Runtime Laravel
Agar aplikasi berjalan normal setelah install package di atas, pastikan:
9.1 Document root web server
Harus mengarah ke:
/var/www/database-kesiswaan/public
Bukan ke root project.
9.2 Permission folder
Laravel harus bisa menulis ke:
storage/bootstrap/cache/
Contoh:
sudo chown -R www-data:www-data /var/www/database-kesiswaan
find /var/www/database-kesiswaan -type f -exec chmod 644 {} \;
find /var/www/database-kesiswaan -type d -exec chmod 755 {} \;
sudo chmod -R 775 /var/www/database-kesiswaan/storage
sudo chmod -R 775 /var/www/database-kesiswaan/bootstrap/cache
9.3 Storage link
cd /var/www/database-kesiswaan
php artisan storage:link
Tanpa ini, file branding, dokumen, dan file upload publik tidak akan tampil.
10. Verifikasi Requirement Setelah Instalasi
Setelah semua paket terpasang, cek dengan command berikut:
PHP
php -v
php -m | sort
Composer
composer --version
Node / npm
node -v
npm -v
Database
mysql --version
Web server
nginx -v
atau
apache2 -v
11. Checklist Requirement Sebelum Deploy Aplikasi
Sebelum clone project dan jalankan deploy, pastikan:
- Ubuntu 22.04 sudah update
- PHP 8.3 terinstall
- extension PHP wajib sudah aktif
- Composer 2.x terinstall
- Node.js 20 LTS terinstall
- npm berjalan normal
- MySQL / MariaDB terinstall
- database aplikasi sudah dibuat
- web server terinstall
- user web server punya akses ke folder aplikasi
12. Error Umum yang Pernah Muncul dan Artinya
Error: vite: command not found
Penyebab:
- dependency npm belum terinstall
node_modulesbelum ada
Solusi:
npm install
Error: Vite requires Node.js version 20.19+ or 22.12+
Penyebab:
- Node.js terlalu lama
Solusi:
- upgrade ke Node.js 20 LTS
Error: Cannot find native binding saat npm run build
Penyebab:
- optional dependency npm gagal terpasang dengan benar
Solusi:
rm -rf node_modules package-lock.json
npm install
npm run build
Error Composer: ext-dom missing / ext-xml missing
Penyebab:
- PHP XML extension belum ada
Solusi:
sudo apt install -y php8.3-xml
Error Laravel migrate: could not find driver
Penyebab:
pdo_mysqlbelum aktif
Solusi:
sudo apt install -y php8.3-mysql
13. Ringkasan Command Install Cepat
Kalau Mas ingin jalur cepat untuk menyiapkan server Ubuntu 22 dari nol:
sudo apt update
sudo apt install -y software-properties-common curl git unzip ca-certificates lsb-release apt-transport-https gnupg
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
sudo apt install -y \
php8.3 php8.3-cli php8.3-fpm php8.3-common \
php8.3-bcmath php8.3-curl php8.3-gd php8.3-intl \
php8.3-mbstring php8.3-mysql php8.3-xml php8.3-zip \
nginx mysql-server
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
cd /tmp
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
14. Setelah Requirement Beres
Setelah requirement server ini aman, baru lanjut ke:
- clone repository
- copy
.env - jalankan
./deploy.sh
Panduan deploy langkah penuh ada di:
DEPLOY.md