Sabtu, 31 Oktober 2015

Virtual Host Membuat Web Project Lebih Rapi



Sebelum menggunakan virtual host, saya mempunyai kebiasaan buruk dalam manajemen file dan direktori pada suatu web project. Efeknya baru berasa ketika waktu debuging, bahkan lupa dimana lokasi assets, sources dan lain sebagainya. Hingga kemudian saya menggunakan virtual hosts yang memungkinkan saya membuat direktori sesuai dengan kebutuhan tanpa dibatasi lokasi dan penamaannya.

Sistem operasi yang sekarang saya gunakan adalah Ubuntu 15.10 menggunakan Apache versi terbaru.

Sebelum menggunakan virtual hosts

Saya meletakan web project di direktori /var/www/html, untuk kemudian saya tinggal akses http://localhost atau http://127.0.0.1 menggunakan browser, untuk menampilkan semua direktori yang ada didalam /var/www/html. Singkat cerita saya membuat sebuah web project bernama 'project 1', untuk kemudian saya membuat direktori baru di dalam ../html tadi yaitu 'project 1', sehingga saya bisa akses webnya melalui url http://localhost/project1.

Didalam project 1 saya juga membuat sebuah direktori sebagai lokasi assets (berupa css,js,font,images atau sebagainya). Saya bisa memanggil sisi dari folder assets tersebut menggunakan url http://localhost/project1/assets.

Berlanjut akhirnya project1 memasukin tahap pengembangan versi kedua. hingga saya membuat direktori baru lagi dan bisa diakses menggunakan url http://localhost/project1-v2/. Dan saya mengulangi kembali membuat folder assets dengan isi yang sama pada v1 didalam project 1-v2, tentu ini akan boros storage.

Setelah menggunakan virtual hosts

Kini unutk membuat web project tidak terpaku pada /var/www/html saja. Dimana lokasi direktorinya asal masih satu komputer bisa digunakan untuk mengerjakan project web. Dalam kasus ini saya mengerjakan project yang sama yaitu 'project 1'. Saya meletakan project satu didalam direktori /var/www/project1. untuk kemudian didalamnya saya isi dengan direktori 'v1' atau 'v2' sesuai dengan yang sedang saya kerjakan.

Demi keamanan dan agar debuging gampang, saya membagi 2 direktori utama pada web project saya, yaitu : public_html dan system.

public_html berisi index yang pertama dibacaa browser, assets dan beberapa source yang sifatnya jalan/bisa dilihat user, menggunakan nama public_html agar sesuai standar yang digunakan beberapa hosting saat ini.

system berisi source yang jalan di server dan tidak bisa dilihat oleh user.

Kemudian setelah struktur direktori siap, saya siapkan pula domain untuk mengaksesnya, disini saya menggunakan http://v1.project1.dev untuk akses project1 versi ke 1 dan http://v2.project2.dev untuk akses versi ke 2. Semuanya jalan secara offline.

Pengaturan virtual hosts (Ubuntu, Apache)

Seperti yang saya jelaskan diatas bahwa saya menggunakan OS Ubuntu 15.10 dan Apache terbaru sebagai web servernya.

Langkah pertama adalah membuat file configurasinya di "/etc/apache2/sites-enable", didalamnya silahkan buat nama file sesuka anda, dalam kasus ini saya membuat file bernama 'project1.conf'.

didalam project1.conf silahkan isi dengan :

<VirtualHost *:80>
    ServerAdmin admin@idmore.dev
    ServerName v1.project1.dev
    ServerAlias www.v1.project1.dev
    DocumentRoot /var/www/project1/v1
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ServerName dan Server Alias berisi alias untuk domain yang ingin digunakan, dan DocumentRoot adalah lokasi peletakan web projectnya.

Setelah disimpan, adalah pengaturan agar apache mengaktifkan konfigurasi yang baru saja dibuat. Masuk terminal dan eksekusi command

sudo a2ensite project1.conf

project1.conf adalah nama konfigurasi vhosts saya didalam /etc/apache2/sites-enable.

Langkah terakhir adalah konfigurasi host, agar ketika membuat http://v1.project1.dev, browser tidak mencari melalui dns di internet, hanya di lokal saja.

masuk ke direktori /etc/hosts untuk menambah konfigurasinya

$sudo nano /etc/hosts

cukup tambahkan satu baris berikut

127.0.0.1      v1.project1.dev www.v1.project1.dev

Reload apachenya, dan kini vhost siap digunakan.

$sudo service apache2 reload


0 comments:

Poskan Komentar