Cara Melakukan Build quran-web

2 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
Melakukan build quran-web
Photo by Safar Safarov on Unsplash

TeknoCerdas.com – Salam cerdas untuk kita semua. Saya cukup sering mendapatkan email tentang bagaimana melakukan build project quran-web yang saya deploy di website https://quranweb.id. Tulisan kali ini adalah tutorial melakukan build quran-web.

Yang perlu diperhatikan adalah ketika melakukan build quran-web perlu project lain yang harus didownloan yaitu quran-json. Tanpa quran-json build tidak dapat dilakukan.

Hal yang dibutuhkan.

  • PHP yang bisa diakses lewat command line
  • Git atau cURL untuk download project dari GitHub

Daftar Isi

Download Project quran-json

Saya asumsikan proses build ini menggunakan MacOS atau Linux. Jika menggunakan Windows maka sesuaikan perintah yang diperlukan. Saran saya gunakan Windows Subsystem Linux (WSL) atau instal Linux pada VirtualBox.

Buat sebuah direktori misal di $HOME dengan nama myproject untuk menampung quran-json dan quran-web nantinya.

$ mkdir myproject
$ cd myproject

Setelah itu download project quran-json dari GitHub.

$ git clone https://github.com/rioastamal/quran-json.git
Cloning into 'quran-json'...
remote: Enumerating objects: 529, done.
remote: Total 529 (delta 0), reused 0 (delta 0), pack-reused 529
Receiving objects: 100% (529/529), 4.89 MiB | 926.00 KiB/s, done.
Resolving deltas: 100% (271/271), done.
Checking connectivity... done.

Harusnya sekarang pada direktori myproject ada direktori baru yaitu quran-json.

$ ls -l
total 0
drwxr-xr-x  6 rioastamal  wheel  192 Oct 24 15:51 quran-json

Lanjutkan ke langkah berikutnya yaitu quran-web.

Download Project quran-web

Pastikan masih berada pada direktori myproject. Lakukan download dengan Git.

$ git clone https://github.com/rioastamal/quran-web.git
Cloning into 'quran-web'...
remote: Enumerating objects: 36, done.
remote: Counting objects: 100% (36/36), done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 434 (delta 13), reused 25 (delta 10), pack-reused 398
Receiving objects: 100% (434/434), 279.28 KiB | 218.00 KiB/s, done.
Resolving deltas: 100% (223/223), done.
Checking connectivity... done.

Sekarang cek isi dari direktori myproject harusnya berisi dua direktori yaitu quran-json dan quran-web.

$ ls -l
total 0
drwxr-xr-x  6 rioastamal  wheel  192 Oct 24 15:51 quran-json
drwxr-xr-x  9 rioastamal  wheel  288 Oct 24 15:53 quran-web

Download selesai dilakukan saatnya melakukan build.

Build quran-web untuk localhost

Contoh build yang pertama adalah dengan melakukan build untuk pengetesan di localhost. Pertama masuk terlebih dahulu ke dalam direktori quran-web.

$ cd quran-web

Sekarang coba lihat isi dari direktori build/ harusnya masih kosong.

$ ls -l build/

Saya akan menggunakan web server bawaan dari PHP bukan Apache atau Nginx. Web server akan dijalankan pada host localhost port 8080 atau http://localhost:8080 sehingga ini akan dijadikan base URL saat melakukan build.

Set beberapa konfigurasi yang diperlukan yaitu letak direktori quran-json. ../quran-json berarti direktori berada level atas satu kali.

Untuk murottal menggunakan mp3 dari URL quranweb.id/murottal.

$ export QURAN_JSON_DIR=../quran-json
$ export QURAN_BASE_URL=http://localhost:8080
$ export QURAN_BASE_MUROTTAL_URL=https://quranweb.id/murottal

Untuk melakukan build lakukan perintah berikut.

$ php src/generator/generator.php
Generating website...done.

Sekarang cek isi dari direktori build/ harusnya sekarang sudah terisi file-file HTML hasil build dari quran-web.

$ ls -l build/
total 0
drwxr-xr-x  122 rioastamal  wheel  3904 Oct 24 16:11 public

Semua file yang harus diupload ke web server adalah yang berada pada direktori public/.

$ ls -l build/public/
[...CUT...]
drwxr-xr-x   11 rioastamal  wheel     352 Oct 24 16:11 98
drwxr-xr-x   11 rioastamal  wheel     352 Oct 24 16:11 99
-rw-r--r--    1 rioastamal  wheel   15406 Oct 24 16:11 favicon.ico
drwxr-xr-x    3 rioastamal  wheel      96 Oct 24 16:11 fonts
-rw-r--r--    1 rioastamal  wheel   84803 Oct 24 16:11 index.html
-rw-r--r--    1 rioastamal  wheel      67 Oct 24 16:11 robots.txt
-rw-r--r--    1 rioastamal  wheel  836975 Oct 24 16:11 sitemap.xml
drwxr-xr-x    3 rioastamal  wheel      96 Oct 24 16:11 tentang

Sekarang jalankan PHP web server pada localhost port 80 dengan document root mengarah ke direktori build/public/.

$ php -S 0.0.0.0:8080 -t build/public/
Listening on http://0.0.0.0:8080
Document root is /private/tmp/myproject/quran-web/build/public
Press Ctrl-C to quit.

Sekarang buka web browser seperti Chrome, Firefox atau Safari dan arahkan ke http://localhost:8080.

Tampilan hasil build quran-web
Tampilan hasil quran-web pada localhost

Build quran-web untuk Domain Tertentu

Yang harus diganti jika ingin menggunakan domain tertentu hanyalah konfigurasi QURAN_BASE_URL. Selebihnya harusnya tidak perlu ada perubahan.

Pada contoh ini misalkan kita akan menggunakan domain quranweb.id maka konfigurasinya adalah sebagai berikut.

$ export QURAN_JSON_DIR=../quran-json
$ export QURAN_BASE_URL=https://quranweb.id
$ export QURAN_BASE_MUROTTAL_URL=https://quranweb.id/murottal

Jika memiliki Google Analytics ID juga bisa disertakan.

$ export QURAN_ANALYTICS_ID=ID_ANALYTICS_ANDA

Setelah itu lakukan build seperti sebelumnya.

$ php src/generator/generator.php
Generating website...done.

Setelah build selesai seluruh file yang ada pada direktori build/public/ dapat diupload ke web server atau hosting.