3.5 KiB
Deployment XAMPP Legacy
Panduan ini hanya referensi legacy jika aplikasi harus dijalankan tanpa Docker. Jalur utama saat ini adalah Docker Compose dan Coolify; lihat deployment-docker.md.
Minimum Runtime
- Apache
>= 2.4. - PHP
>= 7.4; pengujian lokal berjalan di PHP8.2. - MySQL
>= 5.7atau MariaDB>= 10.5.
Port Dan Konfigurasi
- Contoh URL lokal:
http://localhost:8081/webgis/WebgisPovertyMapping/. - Apache dapat berjalan di
80,8080, atau8081; sesuaikan URL dengan port XAMPP. - MySQL/MariaDB default proyek memakai port
3307. - Jika MySQL berjalan di
3306, ubahDB_PORTdiconfig.php. - Konfigurasi koneksi utama ada di
config.php:DB_HOST,DB_USER,DB_PASS,DB_NAME, danDB_PORT.
Import Database
- Buat database dari schema:
mysql -u root -P 3307 < setup_database.sql
- Alternatif: buka phpMyAdmin, pilih tab SQL, lalu jalankan isi
setup_database.sql. - Pastikan nama database sesuai
DB_NAMEdiconfig.php.
Akun Default
- Username:
admin - Password awal:
Admin1234 - Setelah login pertama, admin wajib mengganti password.
Proteksi Folder Non-Publik
Blokir folder tests dan tmp dari akses browser.
Kenapa: file di tests hanya untuk pengecekan developer. Beberapa test dapat menulis data ke database. Folder tmp dapat berisi session atau file sementara.
Pastikan .htaccess aktif dan Apache mengizinkan override:
AllowOverride All
Smoke test manual:
http://localhost:8081/webgis/WebgisPovertyMapping/tests/test_proximity.php
Expected: 403 Forbidden.
Dependency Eksternal
- Leaflet CSS/JS dari
unpkg.com. - Chart.js dari
cdn.jsdelivr.net. leaflet.heat@0.2.0daricdn.jsdelivr.net.- Google Fonts
Inter. - OpenStreetMap tiles dari
tile.openstreetmap.org. - Esri imagery dari
server.arcgisonline.com. - Carto dark tiles dari
basemaps.cartocdn.com. - Nominatim reverse geocoding dari
nominatim.openstreetmap.org.
Jika CDN atau tile server tidak dapat diakses, peta dasar, chart, heatmap, font, atau reverse geocoding bisa terganggu walaupun data aplikasi tetap tersedia.
Strategi Mirror Lokal
Jika aplikasi dipakai di jaringan tertutup, siapkan salinan lokal untuk:
- Leaflet CSS/JS.
- leaflet.heat.
- Chart.js.
- Lucide icons.
- Google Fonts Inter.
Tile peta juga perlu strategi sendiri:
- Gunakan tile server internal; atau
- Batasi penggunaan ke jaringan yang boleh mengakses OpenStreetMap, Esri, dan Carto.
HTTPS Behind Reverse Proxy
Session cookie Secure aktif berdasarkan deteksi HTTPS di PHP. Jika Apache berada di belakang reverse proxy, pastikan header proxy HTTPS diteruskan dan server PHP mengenali request sebagai HTTPS.
Abuse Control Publik
Form kontak donatur memiliki rate limit session sederhana: satu submit per 60 detik per browser session. Untuk deploy publik serius, pertimbangkan CAPTCHA atau rate limit IP di web server.
Troubleshooting
- DB gagal terhubung: cek service MySQL/MariaDB XAMPP,
DB_PORT, username, password, dan nama database. - Port Apache berbeda: gunakan URL sesuai port aktif XAMPP, misalnya
8081. - Import SQL gagal: pastikan MySQL/MariaDB aktif dan user punya izin membuat database/tabel.
- CDN tidak bisa diakses: siapkan mirror lokal untuk Leaflet, Chart.js, leaflet.heat, dan font bila deployment berada di jaringan tertutup.
- Tile peta lambat/gagal: cek akses ke OpenStreetMap, Esri, dan Carto.
- Nominatim gagal: reverse geocoding akan kosong, tetapi input koordinat tetap bisa dipakai.
- session timeout: nilai
SESSION_TIMEOUTdiconfig.phpmengatur durasi sesi login.