Domain Local Apache di Windows Environment

Apache Web Server

Apache Web Server

Sebelumnya saya pernah menulis tentang bagaimana membuat custom local domain untuk apache pada macOS, kali ini saya akan share konfigurasi yang sama namun pada OS berbasis Windows. Secara umum alurnya tidak jauh berbeda, bahkan software-software yang digunakan pun masih tetap sama.

Kembali mengingatkan bahwa dalam konfigurasi ini kita ingin membuat lingkungan pengembangan aplikasi web kita menjadi lebih sederhana dan terstruktur, misalnya dari alamat local yang awalnya

http://localhost/project-A/subproject-A1/child-project-A11

cukup menjadi http://a11.local atau http://sub1.project-a1.local

Contoh domain diatas menggunakan .local, sebetulnya tidak ada keharusan untuk menggunakan domain tersebut karena sifatnya yang memang lokal kita bisa menggunakan domain yang kita inginkan, misalnya .dev, .private, .test, dan lain sebagainya. Bahkan kita bisa menggunakan public domain (TLD) yang sudah ada, misalnya .com, .net, .org, dan lain sebagainya.

Namun menggunakan TLD tidak disarankan, karena nanti dapat menyebabkan conflict dengan public domain yang sesungguhnya.

Project Structures

Saat kita memiliki beberapa project alangkah baiknya kita memiliki satu root folder yang berisi semua project didalamnya, kemudian berjenjang ke sub-folder sebagai representasi sub-aplikasi, dan seterusnya. Contohnya gambar dibawah adalah struktur project yang saat ini saya gunakan.

Saya menempatkan root folder langsung dibawah C:\, dengan begitu begitu saya perlu masuk kedalam folder tersebut melalui mode terminal (CLI) akan lebih mudah dijangkau. Dari struktur folder diatas umumnya saya membentuk domain lokal sesuai project

  • unram.local –> C:\Sites\unram
  • e-pay.unram.local –> C:\Sites\unram\e-pay
  • form.if.unram.local –> C:\Sites\unram\if\form
  • dan seterusnya

Hal ini juga untuk memudahkan dalam mengingat project ketika sudah di-deploy ke stage production

  • unram.local –> unram.ac.id
  • e-pay.unram.local –> e-pay.unram.ac.id
  • form.if.unram.local –> form.if.unram.ac.id
  • dan seterusnya

Web Development Tools

XAMPP adalah web development stack yang sudah familiar bagi pengguna Windows, dalam tulisan ini tools yang akan digunakan adalah software tersebut. Dengan menggunakan software ini kebutuhan software lainnya untuk web server dapat terpenuhi, diantaranya Apache, MySQL, dan PHP.

XAMPP Main

XAMPP Main

Apache Config

Mulai dari Apache, secara default XAMPP mengarahkan root folder untuk aplikasi-aplikasi web yang berjalan dibawah localhost ke C:\xampp\htdocs. Secara teknis kita tetap bisa menggunakan folder ini, namun sedikit lebih panjang ketika kita perlu akses melalui terminal, untuk itu kita perlu arahkan ke root folder yang telah dijelaskan diatas yakni C:\Sites.

Untuk mengarahkan root folder apache ke C:\Sites kita bisa merubah konfigurasi yang ada pada file httpd.conf. Untuk membuka file tersebut dari halaman main XAMPP pada bagian apache klik Config –> Apache (httpd.conf).

Setelah itu mestinya akan terbuka notepad yang berisi file httpd.conf

Yang perlu dilakukan selanjutnya adalah mencari baris yang berisi text

DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">

Kemudian menggantinya dengan 

DocumentRoot "C:/Sites"
<Directory "C:/Sites">

Selanjutnya simpan (ctrl+s) dan tutup Notepad. Untuk memastikan tidak ada yg salah kita perlu stop apache dan start kembali. Jika pada kolom PID(s) dan Port(s) nya muncul angka berarti tidak ada masalah, konfigurasi sudah sesuai.

Apache Virtual Hosts

Dalam tulisan ini misalnya saya ingin membuat vhost untuk domain form.if.unram.local maka sebelumnya saya harus memiliki folder di C:\Sites\unram\if\form. Selanjutnya kita perlu menambahkan host baru pada konfigurasi apache, file yang perlu dibuka adalah C:\xampp\apache\conf\extra\httpd-vhosts.conf.

Pada baris paling akhir tambahkan text berikut

<VirtualHost *:80>
    ServerAdmin zaf@elektro08.com
    DocumentRoot "C:/Sites/unram/if/form"
    ServerName form.if.unram.local
    ErrorLog "logs/form.if.unram.local-error.log"
    CustomLog "logs/form.if.unram.local-access.log" common
</VirtualHost>

Konfigurasi diatas adalah untuk satu host yakni form.if.unram.local, jika ingin menambahkan host lainnya tinggal menambahkan konfigurasi yang sama seperti cara diatas, namun path dan name nya perlu disesuaikan. Jangan lupa setiap melakukan perubahan terhadap konfigurasi apache perlu distop dan distart kembali.

OS Hosts

Terakhir adalah melakukan konfigurasi pada internal DNS pada OS yang digunakan. Domain http://localhost akan selalu mengarah ke 127.0.0.1, custom domain http://form.if.unram.local tidak otomatis mendapatkan IP melainkan kita perlu memetakan domain tersebut menjadi domain local, yakni ke 127.0.0.1 juga.

Untuk memudahkan pengelolaan kita bisa menggunakan software Hosts File Editor.

Jika sudah diisi terakhir adalah tinggal mencoba akses domain local tersebut