DNS dan Apache virtualhost on Ubuntu . Multiple site dalam 1 server

Terkadang kita mempunyai sebuah komputer server yang dijadikan sebagai webserver sekaligus sebagai DNS server. Dimana, nantinya dalam satu server tersebut dapat mengelola beberapa website sekaligus meskipun hanya menggunakan satu unit server. Sebagai contoh, dalam satu server kita dapat mengelola beberapa website sekaligus misal : firman.edu, penmaru.firman.edu, ft.firman.edu dan seterusnya..

Pada percobaan kali ini, saya menggunakan Linux distribusi Ubuntu 9.04 (Jaunty Jackalope).

INSTALASI DAN KONFIGURASI DNS

untuk menginstall DNS, software yang harus diinstall adalah bind. saat ini, versi terakhri adalah versi 9.


$ sudo apt-get install bind9

langkah selanjutnya adalah membuat zone. Zone yang akan kita buat adalah zone dengan nama domain firman.edu

Edit file /etc/bind/named.conf dan tambahkan baris berikut :


zone "firman.edu" {
type master;
file "/etc/bind/firman.edu.db";
};

Langkah selanjutnya adalah membuat sebuah file dengan nama /etc/bind/firman.edu.db . Nama file ini harus sesuah dengan isi file /etc/bind/named.conf yang kita buat sebelumnya. kemudian isikan dengan baris berikut :

$TTL    604800
@       IN      SOA     @  root.firman.edu. (
                     2                   ; Serial
                    604800         ; Refresh
                    86400          ; Retry
                    2419200        ; Expire
                    604800 )       ; Negative Cache TTL

@               IN      NS      ns1
                   IN      A       192.168.1.100
ns1             IN      A       192.168.1.100

Load ulang konfigurasi DNS


$ sudo /etc/init.d/bind9 reload

Ubah konfigurasi DNS supaya diarahkan ke komputer kita sendiri dengan mengedit file /etc/resolv.conf

nameserver 192.168.1.100
nameserver 127.0.0.1

Cek konfigurasi dengan menggunakan tool nslookup ataupun dig


$ nslookup firman.edu

dan hasilnya, mestinya sbb :


Server: 192.168.1.100
Address: 192.168.1.100#53


Name: firman.edu
Address: 192.168.1.100

Jika hasilnya seperti di atas, artinya konfiguras DNS sudah beres. Jika ada yang salah, lihat lognya di file /var/log/syslog

INSTALLASI APACHE WEBSERVER, PHP & MYSQL


$ sudo apt-get install apache2 mysql-server php5 php5-mysql

Secara default, Dokumen Root apache2 yang diinstall di ubuntu disimpan dalam direktori /var/www

oleh karena itu, edit file index.html di direktori /var/www menjadi sbb :


Welcome to firman.edu

Simpan kemudian cek di web browser…

MEMBUAT SITE BARU

Site baru yang dimaksud adalah membuat website dengan menggunakan subdomain. tetapi mempunyai tampilan halaman web yang berbeda dengan halaman web utama. Contohnya kita akan membuat website dengan nama domain penmaru.firman.edu

1. Siapkan subdomain penmaru.firman.edu

Edit file /etc/bind/firman.edu.db dan tambahkan baris berikut

penmaru         IN       A      192.168.1.100

reload service DNS


$ sudo /etc/init.d/bind9 reload

Cek apakah domain penmaru.firman.edu sudah bisa diresolve atau belum


$ nslookkup penmaru.firman.edu

Hasilnya sbb :

Server: 192.168.1.100
Address: 192.168.1.100#53
Name: penmaru.firman.edu
Address: 192.168.1.100

2. Konfigurasi Apache Virtualhost untuk domain penmaru.firman.edu

Buat direktori untuk documentroot domain penmaru.firman.edu


$ sudo mkdir /web/penmaru.firman.edu -p

ubah kepemilikan dan permission filenya

$ chmod 755 -Rf /web
$ chown www-data.www-data -Rf /web

Buat sebuah file dengan nama penmaru.firman.edu dan simpan di dalam direktori /etc/apache2/sites-available dan isikan baris berikut


ServerName penmaru.firman.edu
ServerAlias www.penmaru.firman.edu
ServerAdmin firman@inixindojogja.com
DocumentRoot /web/penmaru.firman.edu
ErrorLog /var/log/apache2/penmaru.firman.error.log
CustomLog /var/log/apache2/penmaru.firman.access.log common
DirectoryIndex index.php index.html index.htm

Options -Indexes
Order Allow,Deny
Allow from all

Aktifkan site virtual host

$ sudo a2ensite penmaru.firman.edu

Restart apache


$ sudo /etc/init.d/apache2 reload

Countdown Timer Seperti 4shared.com

pernah donlot di 4shared.com  ada link donlotnyah yang countdown itu. ada yg nanya gmna cra bkinnya di milis. yawda, tak tulis dsni aja…

<script language="javascript">

i = 5;

var t;

function countdown()

{

t=setTimeout("countdown()",1000);

document.getElementById("content").innerHTML=i;

if(i==0) {

clearTimeout(t);

document.getElementById("content").innerHTML='<a href="http://www.taujago.web.id">Klick me ..</a>';

}

i--;

}

</script>

<body onload="countdown()">

<div id="content">

</div>

</body>

Kesalahan menyebut WWW

Kita sering mendengan penyebutan sebuah alamat website internet di berbagai media. Tapi banyak yang salah menyebutkannya. Mulai di media radio sekelas swaragama jogja bahkan stasiun televisi berita sekelas MetroTV pun, terkadang salah kenyebutkan “www”.

Sebenarnya WWW (World Wide Web) kalau ditinjau dari sisi teknis, hanyalah sebuah alias saja (Conanical Name). Namun, dibuatkannya www hanya untuk membuat standar pengelompokan layanan yang disediakan di internet. misalkan sebuah URL www.example.com  menandakan secara jelas bahwa alamat tersebut adalah sebuah halaman website. padahal kalau kita membuka webbrowser dan mengetikkan tanpa “www” pun tetap bisa di akses. misal :  example.com, detik.com dst.  tetapi selain itu, mungkin saja examle.com menyediakan layanan lain  seperti layanan transfer file (ftp) yang dapat di akses melalui alamat ftp.example.com  atau juga layanan email mail.example.com sehingga terciptalah “www” sebagai standar untuk halaman web. untuk menunjuk sebuah alamat website,  bisa juga tanpa menyebutkan “www”. Read the rest of this entry »

Management Raid di linux

melanjutkan artikel di sebelum ini tentang raid, http://taujago.web.id/index.php/2009/07/16/raid-di-linux/

Berikut ini saya akan membahas tentan bagaimana memanage raid yang sudah ada.

SIMULASI KEGAGALAN DEVICE

tidak salamanya sistem akan running well. mestinya akan ada saat dimana hardware akan mengalami kerusakan. jika kerusakan terjadi pada salah satu anggota raid, maka kita dapat melakukan tindakan recovery. seperti berikut

Membuat (simulasi) salah satu disk rusak


[root@linux-c ~]# mdadm --manage /dev/md0 --fail /dev/sda6
mdadm: set /dev/sda6 faulty in /dev/md0

[root@linux-c ~]# mdadm –detail /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Thu Jul 16 09:12:54 2009
Raid Level : raid5
Array Size : 401408 (392.07 MiB 411.04 MB)
Used Dev Size : 200704 (196.03 MiB 205.52 MB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Fri Jul 17 09:14:35 2009
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 1
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 64K

UUID : 6fa881cb:eb293a09:2e07491f:08ad2ea9
Events : 0.6

Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 7 1 active sync /dev/sda7
2 8 8 2 active sync /dev/sda8

3 8 6 – faulty spare /dev/sda6

walaupun salah satu anggota raid rusak, data dalam direktori yang di simpan di raid device tidak rusak.


[root@linux-c ~]# ll /mnt/testraid/
total 12
drwx------ 2 root root 12288 2009-07-15 11:48 lost+found
-rw-r--r-- 1 root root 0 2009-07-15 11:52 testfile.txt

[root@linux-c ~]# tail -3 /mnt/testraid/testfile.txt
98
99
100

Membuang disk yang rusak dengan cara sbb :


[root@linux-c ~]# mdadm --manage /dev/md0 --remove /dev/sda6
mdadm: hot removed /dev/sda6

Menambahkan disk baru ke dalam Raid


[root@linux-c ~]# mdadm --manage /dev/md0 --add /dev/sda10
mdadm: added /dev/sda10

Cek lagi ..


[root@linux-c ~]# mdadm --detail /dev/md0

Layout : left-symmetric
Chunk Size : 64K

Rebuild Status : 88% complete

UUID : 6fa881cb:eb293a09:2e07491f:08ad2ea9
Events : 0.20

Number Major Minor RaidDevice State
3 8 10 0 spare rebuilding /dev/sda10
1 8 7 1 active sync /dev/sda7
2 8 8 2 active sync /dev/sda8

Raid di linux

RAID (Redundant Array Inexpensive Disk) adalah sebuah mekanisme penggabungan beberapa disk secara fisik, sedangkan secara logikal tetap dianggap sebagai satu direktori. detailnya, silahkan baca di sini :

http://en.wikipedia.org/wiki/RAID

Misalkan kita menghendaki sebuah direktori memiliki ukuran 2Tb. sedangkan kita tidak memiliki disk dengan ukuran tersebut dan hanya memiliki 2 buah HD dengan ukuran masing – masing 1Tb. solusinya adalah dengan menggabungkan disk tersebut. sehingga kita mendapatkan direktori dengan ukuran 2Tb.

Raid memiliki beberapa level untuk konfigurasinya. beberapa diantaranya yang paling banyak digunakan adalah sbb:

- Level 0

level 0 adalah menggabungkan minimal 2 buah disk.  total ukuran disk untuk level 0  adalah akumulasi dari jumlah ukuran disk. tetapi kelemahannya adalah tidak ada fault tolerance.  Jadi, kalau salah satu disk rusak, maka data akan rusak

- Level 1

Level 1 bisa juga disebut dengan mirroring. Dibutuhkan minimal 2 buah disk. dimana, dua buah disk tersebut akan identik satu dengan yang lain. Sehingga jika salah satu disk rusak, maka yang lain bisa menggantikan.

- Level 5

Level 5 membutuhkan minimal 3 disk. ukuran total yang kita dapatkan adalah n-1. Misalkan ada buah 3 disk dengan ukuran masing2 100G, digabungkan dengan raid level 5, maka total ukurannya adalah 200G. sedangkan 100G digunakan untuk spare. Keuntungan dari raid level 5 adalah adanya fault tolerance. Raid level 5 memberikan toleransi kerusakan 1 disk. jika salah satu disk rusak, maka data tetap aman. tidak akan hilang.

Raid dapat dikonfigurasi pada level hardware ataupun pada level sistem operasi. bagi yang menggunakan komputer branded class server atau dedicated server, Raid sudah tersedia. sedangkan bagi yang hardwarenya belum support raid, dapat melakukan konfigurasi raid pada leve OS dalam hal ini, adalah linux.

Membuat Partisi

[root@linux-c ~]# fdisk /dev/sda

The number of cylinders for this disk is set to 4865.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): n
First cylinder (3055-4865, default 3055):
Using default value 3055
Last cylinder or +size or +sizeM or +sizeK (3055-4865, default 4865): +200M

Ubah ID partisi menjadi Linux Raid


Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): fd
Changed system type of partition 6 to fd (Linux raid autodetect)

Lakukan hal yang sama sehingga kita memiliki 3 buah partisi dengan ukuran masing – masing 200M dengan ID Linux Raid. Berikut ini adalah skema akhir partisi

Disk /dev/sda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd6aad6aa

Device Boot Start End Blocks Id System
/dev/sda1 * 1 2550 20482843+ 83 Linux
/dev/sda2 2551 2805 2048287+ 82 Linux swap / Solaris
/dev/sda3 2806 2867 498015 83 Linux
/dev/sda4 2868 4865 16048935 5 Extended
/dev/sda5 2868 2892 200781 83 Linux
/dev/sda6 2893 2917 200781 fd Linux raid autodetect
/dev/sda7 2918 2942 200781 fd Linux raid autodetect
/dev/sda8 2943 2967 200781 fd Linux raid autodetect

Membuat Raid Level 5


[root@linux-c ~]# mdadm --create --level=5 /dev/md0 --raid-devices=3 /dev/sda6 /dev/sda7 /dev/sda8

setelah membuat raid, cek apakah raid sudah oke atau belum


[root@linux-c ~]# mdadm --detail /dev/md0

/dev/md0:
Version : 00.90.03
Creation Time : Thu Jul 16 09:12:54 2009
Raid Level : raid5
Array Size : 401408 (392.07 MiB 411.04 MB)
Used Dev Size : 200704 (196.03 MiB 205.52 MB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Thu Jul 16 09:13:18 2009
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 64K

UUID : 6fa881cb:eb293a09:2e07491f:08ad2ea9
Events : 0.4

Number Major Minor RaidDevice State
0 8 6 0 active sync /dev/sda6
1 8 7 1 active sync /dev/sda7
2 8 8 2 active sync /dev/sda8

Melakukan format file system


[root@linux-c ~]# mkfs -t ext3 /dev/md0
mke2fs 1.40.8 (13-Mar-2008)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
100352 inodes, 401408 blocks
20070 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
49 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

Buat direktori, dan mount raid device ke direktori tersebut


[root@linux-c ~]# mkdir /mnt/testraid
[root@linux-c ~]# mount /dev/md0 /mnt/testraid/

Cek ukuran direktori /mnt/testraid


[root@linux-c ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 4.9G 14G 27% /
tmpfs 501M 1.1M 500M 1% /dev/shm
/dev/sda3 471M 11M 437M 3% /mnt/data
/dev/sr0 3.9G 3.9G 0 100% /media/DVD1-IL082008
/dev/sda5 190M 5.6M 175M 4% /mnt/musik
/dev/md0 380M 11M 350M 3% /mnt/testraid

perhatikan bagian ini
/dev/md0 380M 11M 350M 3% /mnt/testraid

ukuran direktori /mnt/testraid adalah 380M.

Kejahatan itu bernama “malas update blog”

Ketika seorang netter menlakukan klik pada tombol register untuk membuat blog, artinya sebuah ikatan, sebuah keharusan yang tidak tertulis, sebuah tanggung jawab untuk selalu menulis/mengupdate blog telah disematkan kepada si netter.  Artinya dia sudah sah  menjadi seorang BLOGGER. Dan sudah semestinya seorang BLOGGER (harus ditulis hurup besar ya? apa saya yang mode maksa=on ? :D  ) selalu mengupdate blognya. kalau tidak, artinya dia barus  saja melakukan sebuah kejahatan serius terhadap blognya. Dan saya harus menghadapi kenyataan bahawa, saya adalah salah satu dari pelaku kehatan itu.. lihatlah sodara – sodara. terakhir sebelum tulisan ini,  tulisannya bertanggal 8 feb 09. sekarang udah bulan juni.. waaa……….. maapkan aku sodara-sodara… hari ini,  aku akan berjanji.. akan selalu meng-apdet blog ini. tunggu saja…  zzzz…….

Mencegah Serangan Blind SQL Injection

SQL InjectionBlind SQL Injection Merupakan salah satu teknik serangan web yang pupuler saat ini. Teknik ini bisa saya katakan sebagai varian dari teknik yang hampir serupa yaitu SQL Injection. Sama – sama memanfaatkan query database untuk melakukan hal – hal ilegal ke dalam website korban. Tujuan utama dari teknik ini adalah untuk mendapatkan username dan password user administrator yang mengelola website. Dengan demikian, akan dengan memudah melakukan segala sesuatu terhadap website korban.Mengubah tampilan depan (deface), mengganti ID Adsense (kalo memang ada), dst..

Saya tidak akan membahas bagaimana cara melakukan teknik ini. Silahkan anda buka disanadisitu, dst. Saya akan membahas  bagaimana caranya bertahan.

Saya iseng-iseng ikut kegiatan yang diadakan oleh yogyafree.net yang membahas tentang sql injection. lebih tepatnya, Blind SQL Injection. Untuk mempelajari teknik ini. Setelah saya pelajari dan mencoba beberapa kali, akhirnya saya berani membuat kesimpulan bahwa serangan ini mungkin dilakukan benar2 murni kesalahan web developernyah. Read the rest of this entry »

PHPJavaBridge- PHP PDF Generator

Salah satu bagian terpenting dari sebuah sistem adalah laporan. Laporan bisa dibuat dalam berbagai macam format dokumen. PDF (Portable Document Format) adalah salah satu format dokumen yang banyak digunakan.

Bagaimana dengan Aplikasi berbasis web ? Untuk aplikasi berbasis web, PDF juga sering digunakan untuk membuat laporan. Ada banyak sekali class PHP untuk menggenerate dokumen PDF. Ada TCPDF, FPD, dll. Saya sendiri pernah mencoba menggunakan class tersebut. Memang bagus cuman saya mengalami kesulitan ketika membuat laporan yang cukup rumit. Bukannya kelas2 tadi gk bisa, cuman ribet ajah..

Akhirnya saya menemukan cara yang lebih ‘manusiawi’ untuk membuat dokumen PDF. yaitu menggunakan PHP-Java-bridge Read the rest of this entry »

Tips Ber-notebook Sehat

Pengguna notebook sudah banyak sekarang. Selain harganya yang bersaing, notebook juga sangat ringkas. Menggunakan notebook atau ngenotebook ada aturan – aturannya juga loh.. supaya, anda dan notebook sama – sama selamat. Misalkan, dilarang menggunakan notebook di pinggir jurang, karena akan membahayakan nyawa anda. Atau jangan menggunakan notebook di rel kereta api. Nanti kereta api lewat bisa berbahaya.. ( gk mutu… )

Oke berikut ini tips – tips yang sebenarnya. Read the rest of this entry »

Panduan installasi oracle, apache dan php di linux OS

Baru – baru ini saya ditugaskan untuk membuat materi tentang Oracle, PHP di Linux OS. Secara terpisah, ketiga materi tersebut sudah sering saya ajarkan ke peserta saya. tapi dicombine menjadi satu materi, ini adalah sebuah tantangan yang cukup menarik. Materi ini membahas tentang langkah – langkah installasi Oracle 10g di linux. Kemudian mengaksesnya melalui PHP. Beberapa hal sepele tetapi kadang menjadi masalah besar. di sini sudah saya tuliskan dengan cukup lengap.

Karena menemukan banyak kesulitan, akhirnya saya bermaksud mendokumentasikan dan membagi pada yang lain siapa tahu ada yang mengalami kesulitan yang serupa yang saya alami. SIlahkan klik disini untuk mendownloadnyah.. semoga bermanfaat..