Skip to content

Setup lokal

Cara menjalankan sebuah fork INACT di mesinmu sendiri. Setiap fork dipasang dengan cara yang sama; hanya .env-nya yang berbeda.

Cara halaman ini diverifikasi

Ditulis dari master pada 2026-09-06: README, contoh env, file bootstrap dan README deploy. Fakta host database bersama berasal dari catatan tim.

Yang kamu butuhkan di mesin

KebutuhanKenapa
PHP 7.3Server QA dan produksi menjalankan 7.3. PHP yang lebih baru rusak pada kode lama; php7.3 adalah yang dipanggil eksplisit oleh consumer JOTRE.
Ekstensi PHP: pdo plus driver yang kamu pakai (pdo_mysql, pdo_pgsql atau pdo_sqlsrv dengan Microsoft ODBC Driver), xml, mbstring, iconv, gd, zip, curl, mongodbREADME.md menyebut ext_xml dan PDO. Kode juga memanggil mb_*, iconv, imagecreate*, ZipArchive dan cURL, dan composer.json membutuhkan mongodb/mongodb, yang butuh ekstensi mongodb. ldap hanya kalau kamu mengerjakan login LDAP.
Composercomposer install mengambil Slim, illuminate/database, phinx, PhpSpreadsheet, TCPDF, HTML2PDF, PHPMailer, MongoDB dan symfony/dotenv.
Web server yang menjalankan PHP dengan root repository sebagai docrootApache (repository membawa .htaccess yang hanya memblokir .env), nginx dengan php-fpm (Rumah box), atau IIS (Windows Server box dan Tomori). Tidak ada rewrite front controller; main.php dipanggil langsung.
Database: MySQL 5.7, PostgreSQL 14 atau SQL Server 2019Satu code base, tiga driver. Pakai driver yang dijalankan instance-mu di produksi; halaman instance menyebutkan yang mana.
Akses tulis ke docUpload/ dan docTemp/File yang diunggah dan file sementara.

Kamu tidak butuh ionCube. Repository plain adalah PHP biasa. Build ter-encode ada di twin *-encrypted dan sama sekali tidak bisa jalan di Mac Apple silicon, jadi uji itu di situs QA.

Langkah-langkah

  1. Clone fork yang kamu kerjakan, misalnya git clone [email protected]:binari-digital/ina-jadestone.git.

  2. composer install.

  3. Salin .env.example ke .env dan isi, lihat di bawah.

  4. Arahkan virtual host ke root repository. Konvensi di mesin developer adalah inact-<instance>.<domain-kamu>, satu host per fork, jadi hasil edit langsung disajikan tanpa langkah build.

  5. Buat database-nya, lalu:

    bash
    php vendor/bin/phinx migrate
    php vendor/bin/phinx seed:run

    phinx.php membaca .env lewat db_config.php, jadi tidak perlu config phinx terpisah. Migrasi dan seed ada di bawah db/.

  6. Tambahkan dua entri cron dari README kalau kamu butuh email atau antrean procurement secara lokal:

    text
    * * * * * php /path/to/inact/cron/inact_mailgun_curl.php >> /dev/null 2>&1
    * * * * * php /path/to/inact/cron/cron_submit_queue.php >> /dev/null 2>&1
  7. Buka situsnya. Login pertama adalah super-admin dari inact_super_admin (default [email protected]), lihat Users dan Privilege.

File .env

KeyArti
DEFAULT_LOCATIONNama "lokasi" default. INACT punya skema multi-lokasi legacy: connect.php membangun $_DB[<lokasi>] dari key DB_*, dan senslid_database_selector.php memilih lokasi dari segmen pertama URL request, jatuh ke default ini. Pada instalasi normal ada satu lokasi.
INCLUDES_URLBase URL untuk templates/, includes/ dan image/. Biasanya URL situs.
DB_CONNECTIONmysql, postgres atau mssql. db_config.php memetakannya ke nama driver PDO mysql, pgsql dan sqlsrv di konstanta DB_DRIVER.
DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAMEDatabase-nya.
DB_TRUSTCERTIFICATEHanya SQL Server: 1 untuk menerima sertifikat server.
MONGO_HOST, MONGO_PORT, MONGO_DBNAME, MONGO_USERNAME, MONGO_PASSWORDsetting.php membuat MongoDB\Client saat boot dari key-key ini. Klien terhubung secara malas, jadi Mongo yang tidak terjangkau hanya merusak fitur yang memakainya: modul log aktivitas dan helper log di inweb.lib.php.
NOTIF_OVERDUE_SINCE_DAYJendela pandang ke depan cron overdue, lihat Cron job.
ROUTING_DIGEST_DEBUGtrue membuat cron digest lebih cerewet.
PHP_PATHBinary PHP, untuk skrip yang memanggil shell.
EMAIL_QUOTA_PER_DAY, EMAIL_TOTAL_PER_BATCHOpsional, dibaca cron email; tidak ada di file contoh.

Setting aplikasi sendiri, branding, feature flag dan default, tidak ada di .env. Itu baris di tabel inweb_config, lihat inweb_config.

Database mana yang dituju

Checkout setiap fork di mesin developer mengarahkan .env-nya ke host database dev bersama, bukan server lokal, supaya "apakah bug ini juga kena instance X" bisa dijawab dengan data nyata:

HostYang berjalan di sana
192.168.1.52, VM db di LAN kantorMySQL 5.6 dan 5.7, PostgreSQL 12, 13 dan 14, SQL Server 2019, masing-masing sebagai container Docker. SSH sebagai ubuntu@db.
192.168.1.110SQL Server yang menyimpan snapshot Tomori.

Nama database dan port per fork ada di halaman instance. Database uji master inact-v3-eris ada di ketiga engine dan hampir kosong; milik Medco dan Jadestone adalah snapshot produksi dan tempat yang lebih baik untuk mencoba query dengan data nyata. Database produksi ada di tempat lain; host dev hanya menerima restore dump.

Migrasi yang kamu jalankan lokal hanya menyentuh snapshot yang kamu tuju. Dev dan staging bersama migrate sendiri saat deploy, lihat Environment dan deploy.

Memeriksa bahwa semuanya jalan

  • Halaman login tampil dan super-admin bisa login.
  • Document Routing, Inbox memuat grid-nya. Grid adalah dhtmlxGrid yang diberi makan request &xml=1; grid kosong pada halaman yang tampil biasanya berarti sebuah query gagal di driver-mu, lihat Portabilitas database.
  • php vendor/bin/phinx status tidak menunjukkan migrasi tertunda.

Hal yang perlu diwaspadai

  • globals.php mengemulasi register_globals. Setiap variabel request juga menjadi variabel PHP biasa ($_POST['id'] juga $id). Kode lama bergantung padanya. Jangan "perbaiki" variabel yang terlihat tidak terdefinisi sebelum memeriksa request-nya.
  • Helper query legacy melempar exception begitu masuk di master, Jadestone, Medco dan Timas. Layar yang mati dengan "Error Processing Request" mencapai iw_mysql_query(). Lihat Portabilitas database.
  • PHP 8 tidak didukung. Kode memakai fungsi yang sudah dihapus dan bergantung pada emulasi register_globals.
  • Path Windows nyata untuk Tomori. Uji penanganan path di sana lewat situs QA, bukan lokal.