31 Oktober 2015

Struktur Alternatif Program Web Berbasis Yii2

Web Programmer yang menggunakan Yii2 Framework dapat mengikuti struktur berikut ini agar lebih leluasa menempatkan program web di folder manapun.

Catatan:
Saya menggunakan Ubuntu 14.04 dengan LAMP stack. Jadi folder Document Root ada di /var/www/html . Anda bisa menyesuaikan dengan system sendiri.

1. Letakkan Yii2 dibawah folder /var/www/html, misal nama foldernya yii2-basic. Struktur folder yii yang saya pakai sebagai contoh disini adalah berasal dari yii-basic-app-2.0.6.tar.gz


2. Buat folder di bawah /var/www/html untuk website yang akan didevelop, misal webcoba. Ikuti struktur yang ada pada struktur Yii2 di atas, atau copy saja folder dan isinya dari yii2-basic. Folder yang TIDAK DIBUTUHKAN adalah mail, tests, vendor dan web.

Copy juga file favicon.ico dan index.php dari folder yii2-basic/web. File index.php ini yang nanti akan sedikit dimodif agar lebih fleksible.


3. Pastikan folder assets dan runtime word writeable, beri perintah sbb:

# sudo chmod 777 /var/www/html/webcoba/assets
# sudo chmod 777 /var/www/html/webcoba/runtime


Anda bisa menempatkan file .htaccess yang berisi deny from all, agar folder tersebut aman.

4. Edit file index.php yang berada di /var/wwww/html/webcoba/ menjadi seperti berikut ini:

<?php

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');


//

//ada tiga baris berikut yang saya comment out 
//dan nanti disesuaikan
////require(__DIR__ . '/../vendor/autoload.php');
//require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
//$config = require(__DIR__ . '/../config/web.php');



//definisikan YII_PATH dimana yii2 diinstall 

//sebagai contoh di atas /var/www/html/yii2-basic
//bisa dituliskan relatif, bisa juga full
define('YII_PATH', '/var/www/html/yii2-basic');

require(YII_PATH . '/vendor/autoload.php');
require(YII_PATH . '/vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/config/web.php');

(new yii\web\Application($config))->run();



Perhatian, copy-paste dari halaman ini kemungkinan bermasalah pada penulisan aphostrope. Silakan periksa kembali.

5. Edit file config/web.php menjadi sbb:

<?php

$params = require(__DIR__ . '/params.php');

$config = [
    'id' => 'basic',
    'basePath' => dirname(__DIR__),

 
    //tambahkan baris berikut ini
    'vendorPath'=> YII_PATH.'/vendor',   
    'bootstrap' => ['log'],
    'components' => [
        'request' => [


... dst...

6. Selesai

Sebelum develop program lebih lanjut, system anda sudah dapat diakses pada http://localhost/webcoba.

Catatan:
* Struktur pada webcoba dapat dijadikan skeleton untuk program lainnya.
* Anda bisa membuat berapapun web program dengan skeleton yang sama.
* Bila ada upgrade Yii2 cukup dilakukan di folder yii2-basic basic tsb.

26 Februari 2015

Memecahkan Masalah Grub Rescue dengan Lilo

Banyak pemakai Window yang mencoba melakukan install dual-boot dengan Linux, yang pada akhirnya menghapus partisi Linux. Apa yang terjadi setelah itu?

Saat komputer di-restart, ia tidak dapat lagi masuk ke Windows-nya, melainkan masuk ke terminal grub rescue mode. Tampilannya sebagai berikut:



Nah, bagaimana solusinya?

Cara yang biasa pemakai Windows lakukan adalah dengan booting menggunakan CD Windows baik untuk install maupun recovery. Di sana ada menu untuk repair Windows.

Namun bagi pemakai Window yang tidak memiliki CD tersebut, solusinya adalah menggunakan LiveCD atau LiveUSB Linux yang sebelumnya ia gunakan untuk install Linux. Berikut ini langkah-langkahnya:
  1. Boot dari LiveCD atau LiveUSB Linux. (Pada beberapa komputer menggunakan tombol F12 untuk masuk ke menu pilihan Boot Device pada BIOS)

  2. Pilih "Try Ubuntu"

  3. Masuk ke terminal, lalu install lilo

    Nah apakah itu Lilo? Lilo adalah Linux boot loader yang dulu pernah dipergunakan oleh sebagian besar distro Linux sebelum beralih ke grub. Lilo memiliki fasilitas pemasangan MBR pada partisi harddisk. Untuk itu pastikan komputer anda terhubung ke internet. Ukuran file tidak besar, hanya 276kB.

    > sudo apt-get install lilo




    Pada saat instalasi lilo, akan tampil dialog seperti gambar dibawah ini, tekan saja tombol OK. (dengan mouse atau Tab lalu Enter)


  4. Install MBR pada partisi pertama dengan perintah sbb:

    > sudo lilo -M /dev/sda mbr




  5. Selesai, reboot

Tips di atas adalah hasil ujicoba pada komputer 32bit yang terpasang OS WinXP. Pada komputer 64bit UEFI belum diujicobakan.

Semoga bermanfaat.

21 Februari 2015

Mengatur Timezone di Ubuntu Server

Mengatur setingan waktu sesuai dengan Timezone tertentu pada Ubuntu Server 14.04 LTS dapat dilakukan sebagai berikut:

> sudo dpkg-reconfigure tzdata

selanjutnya akan ditampilkan dialog pemilihan wilayah geografis yang dilanjutkan dengan pemilihan nama kota.


07 Februari 2015

Belajar Mengkonfigurasi PC Router di VirtualBox

Belajar mengkonfigurasi PC Router dengan Mikrotik maupun Ubuntu tentu membutuhkan biaya yang tidak sedikit untuk pengadaan PC dan jaringan. Kerena itu dapat dipergunakan VirtualBox sebagai lab untuk membangun jaringan lengkap dengan PC Router dan PC Client di bawahnya.

Tulisan ini dapat membantu mereka yang ingin mempelajari bagaimana PC Router atau Mikrotik dikonfigurasi sehingga dapat bekerja sesuai keinginan hanya dengan VirtualBox. Tentu saja dibutuhkan komputer yang spesifikasinya cukup untuk dipasangi VirtualBox dan beberapa mesin virtual di dalamnya.

Tujuan:
Melakukan simulasi pembuatan PC Router di VirtualBox sehingga virtual client yang berada di bawah router tersebut dapat mengakses jaringan yang dapat diakses oleh host, misalkan internet dll.

Berikut ini skema jaringan yang akan dibangun:




Gambar 1. Skema Jaringan yang Akan Dibangun


Keterangan:
  • Host adalah komputer fisik yang sedang dipakai, di dalamnya sudah terpasang VirtualBox
  • PC Router adalah komputer virtual yang akan digunakan sebagai router. PC ini memiliki 2 ethernet dan meneruskan semua permintaan dari client di bawahnya ke host.
  • C1 adalah komputer virtual yang akan digunakan sebagai client di bawah router. Komputer ini nantinya harus dapat mengakses jaringan yang dapat diakses oleh host, misalnya internet 
  • C2 seperti halnya C1, tetapi opsional bila memori cukup.
  • Switch jaringan yang menghubungkan mesin-mesin virtual.
  • Pada dasarnya, tipe jaringan yang dibangun disini adalah NAT.

Langkah-langkah yang dilakukan sbb:
  1. Membuat Mesin Virtual PC Router
  2. Mengatur Konfigurasi Jaringan PC Router
  3. Mengatur Tabel Routing PC Router
  4. Membuat Mesin Virtual PC Client
  5. Mengatur Konfigurasi Jaringan PC Client

1. Membuat Mesin Virtual PC Router


Pembaca dapat menggunakan OS Mikrotik atau lainnya. Namun karena penulis tidak memiliki OSnya, dalam artikel ini penulis menggunakan Ubuntu.

Penulis menganggap pembaca sudah mengerti cara membuat mesin virtual di VirtualBox. Bila belum mengerti silahkan mencari referensi di internet, disini penulis menekankan beberapa hal:

  • Semua mesin virtual yang penulis pakai menggunakan Ubuntu Server tanpa menginstall aplikasi server, sehingga dapat menggunakan memori 256M saja. Bila pembaca ingin menggunakan Mikrotik, dipersilakan mencari referensi kebutuhan memori minimal.
  • PC Router membutuhkan 2 Network Adapter
    • Netwotk Adapter 1 terhubung ke "NAT"
    • Network Adapter 2 terhubung ke "Internal Network"



2. Mengatur Konfigurasi Jaringan PC Router


Menurut Gambar 1, PC Router memiliki dua kartu jaringan, masing-masing eth0 dan eth1. Karena eth0 terhubung ke NAT, maka eth0 mendapatkan IP secara DHCP dari VirtualBox device, biasanya 10.0.2.15 untuk PC pertama.

Eth0 ini otomatis memiliki gateway dengan IP 10.0.2.2 yang mewakili IP host. Jadi bila ingin mengakses service yang tersedia di host, cukup mengakses 10.0.2.2.

Sementara eth1 harus dikonfigurasi manual. Misalkan jaringan yang akan dibagun adalah 192.168.2.0/24, maka eth1 akan dipakai sebagai gateway dari jaringan dalam diberi IP 192.168.2.1. Berikut perintah di terminal sbb:

> sudo ifconfig eth1 192.168.2.1 up

3. Mengatur Tabel Routing PC Router


Agar semua permintaan keluar dari jaringan 192.168.2.0/24 diteruskan ke host, maka perlu dibuat tabel routing dan mengaktifkan masquerade.

> sudo -i
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -A FORWARD -i eth1 -j ACCEPT

# exit

 

4. Membuat Mesin Virtual Client


Sama seperti mesin virtual PC Router, penulis menggunakan Ubuntu Server juga tanpa menginstall aplikasi server, sehingga dapat menggunakan memori 256M saja. Meskipun namanya OSnya Ubuntu Server, tetapi penulis menjadikanya sebagai PC Client.

Karena akan dihubungkan ke mesin virtual PC Router, PC Client membutuhkan Network Adapter yang terhubung ke "Internal Network"


5. Mengatur Konfigurasi Jaringan PC Client


Kartu jaringan eth0 harus dikonfigurasi manual sesuai dengan jaringan yang akan dibangun (192.168.2.0/24), maka eth0 diberi IP 192.168.2.10 misalnya. Berikut perintah di terminal sbb:

> sudo ifconfig eth0 192.168.2.10 up

Berikutnya perlu diatur juga gateway dari jaringan ini yaitu 192.168.2.1, sbb:

> sudo route add default gw 192.168.2.1


Nah, selesai sudah. Kini virtual PC Client seharusnya sudah dapat mengakses semua service di Host, semua PC yang berada pada jaringan yang sama dengan Host, bahkan internet yang dapat diakses Host juga akan dapat diakses oleh Client ini.

> ping 10.0.2.2
> ping 8.8.8.8
> ping google.com

Bila pembaca ingin menggunakan browser dari terminal, silakan install elinks dengan perintah sbb:

> sudo apt-get install elinks
> elinks http://m.facebook.com 


Selamat mencoba.