Belajar membangun web hosting sendiri dengan CentOS 6.5

Kali ini saya akan menggunakan sistem operasi network yang cukup banyak dipakai di server-server webhosting diseluruh dunia karena free dan kehandalannya yang tidak diragukan lagi. Oh ya, Centos adalah turunan dari RedHat, jadi proses installasi paket menggunakan yum.

Untuk itu unduh dulu versi minimal installnya (salah satu)

http://mirror.smartmedia.net.id/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-minimal.iso
http://buaya.klas.or.id/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-minimal.iso
http://mirror.unej.ac.id/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-minimal.iso

atau jika tiga server diatas offline atau link terputus; cari-cari sendiri di daftar mirror di

http://isoredirect.centos.org/centos/6/isos/x86_64/

Mengapa versi minimal? karena banyak paket yang menurut saya pada situasi dedicated connection atau server co-location dimana koneksinya cepat, hanya butuh beberapa detik saja untuk mengunduh centos-minimal-ISO lalu burn ke-kepingan CD/DVD, dan seluruh paket akan di install nanti ketika OS sudah terkonfigurasi dengan baik. Dan juga mengurangi celah keamanan. Dan sebaiknya tidak perlu diinstall desktop (xserver beserta kde/gnome). Karena boros resource dan lagi-lagi mungkin akan menimbulkan celah keamanan.

Entah kenapa installasi versi terakhir ini (6.5) menggunakan GUI 🙁 karena saya sering lupa membawa mouse ke ruangan IDC, saya lebih senang menggunakan plain-text installation. Untuk itu tekan tombol [tab] lalu ketikkan linux text pada akhir baris. Installasi anaconda akan segera muncul.

centos 6.5 install 001
Installasi CentOs modus minimal tidaklah sulit, cuma menggunakan beberapa kunci pada keyboard. Biasanya tombol panah, [tab] [enter] [esc]. Biasanya pertanyaan adalah time-zone bahasa- waktu, password root, formating harddisk. Tanpa ada prompt untuk memilih paket.

Media check sebaiknya dilakukan, karena saya pede, saya pilih [skip] . Ikuti saja perintah dilayar, dalam beberapa saat akan dilakukan proses copy dari media ke harddisk lokal. Dan akan dilakukan reboot untuk pertama kalinya

Karena iso dalam modus minimal, installasi akan cepat sekali selesainya. Tanpa pertanyaan macam-macam 😀

Selanjutnya yang pertama-tama saya konfigurasi adalah network. Topologi server CentOs saya dibelakang router, Kelas Ip C. 192.168.0.0/24.

Seting gateway network ada di

# vi /etc/sysconfig/network

Tekan tombol [insert/ins] diatas tombol [delete]. lalu tekan [esc] dan ‘:wq’ untuk simpan dan keluar. Contohnya isi file network seperti ini:

NETWORKING=yes
HOSTNAME=toys.twiranto.com
GATEWAY=192.168.30.1

Seting nameserver (DNS) untuk resolving nama domain

# vi /etc/resolv.conf

Isikan sesuai dns lokal anda/isp:

nameserver 192.168.30.1
nameserver 8.8.8.8

Seting Ip-address private static:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Contoh isi script ifcfg-eth0 pada mesin saya

DEVICE=eth0
HWADDR=00:0C:29:78:8D:27
TYPE=Ethernet
UUID=c48dd6f6-3e17-4ea6-9e75-28101bb88922
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.30.4
NETMASK=255.255.255.0

HWADDR, UID jangan dirubah. ONBOOT set ke yes. BOOTPROTO rubah dari dhcp ke static. tambahkan IPADDR dan NETMASK.

Jika ada beberapa ethernet yang terkoneksi seting juga di dalam folder /etc/sysconfig/network-scripts/ifcfg-ethX. Setelah semuanya sudah terkonfigurasi, ketikkan:

# service network restart

# ping yahoo.com

Jika reply, IP & DNS sudah terkonfigurasi dengan baik.

Selanjutnya, karena saya tidak suka vi saya install dulu nano. Dan jangan lupa install wget tools kecil yang sangat bermanfaat untuk mendownload / spidering website/file.

# yum install nano
# yum install wget

Oh ya,Saya lupa untuk update paket. ya sudah silakan updating paket dulu

# yum update

Proses update system akan berjalan, selama tidak ada kendala. Pada o/s yang fresh install biasanya tidak lebih dari 60 MB.

Rencananya ada 2 harddisk 36 gb Scsi merek Seagate yang akan saya raid-software level 0. Memang raid 0 secara software sedikit membebani CPU, tetapi tidak banyak. Jika anda mempunyai controller harddisk yang bagus dan mempunyai 1 spare tambahan. Gunakanlah Raid yang dibuat secara hardware tsb. Niscaya proses baca-tulis akan cepat.

Untuk itu, saya shutdown mesin saya dengan perintah:

# init 0

atau

# /sbin/shutdown -h now

Setelah harddisk selesai ditancapkan kabel power dan data (atau slot pada casing server), server saya nyalakan. Begitu muncul login-screen. Ketikkan ini:

# dmesg | grep ata
atau
# dmesg | grep scsi

Biasanya harddisk system ada pada kanal yang paling rendah. Misalnya /dev/sda. Ini tergantung installasi kabel ataupun peletakan slot pada casing server. Semakin rendah akan terbaca /sda lalu /sdb /sdc. Misalkan di dalam /sda ada beberapa partisi nama linknya akan seperti ini /sda1 /sda2 dsb.

Nah harddisk tambahan otomatis akan ada pada kanal /dev/sdb /dev/sdc dan seterusnya. Harddisk tambahan saya ada di /dev/sdb & /dev/sdc akan saya RAID level 0 (stripe) yang artinya kedua harddisk tsb akan disatukan sehingga kapasitasnya 36Gb x2.

Caranya pergunakan tools mdadm yang secara default sudah terinstall pada iso-minimal ini. Penggunaannya sangat mudah:

# mdadm –create /dev/md0 –level=raid0 –raid-devices=2 /dev/sdc /dev/sdb

–create artinya membuat raid, /dev/md0 artinya membuat link device raid. Karena belum ada device raid pada system, saya buatkan hardlink ‘/md0’
–level= artinya level raid yang akan dipergunakan. raid0 berarti stripe.
–raid-devices= jumlah harddisk yang dipergunakan untuk raid ini. lalu pada akhir perintah sebutkan nama-nama devicenya.

Setelah command diatas di {enter} jawab saja dengan menekan tombol y {yes}. Seharusnya jika sintaks benar akan muncul tulisan:

Continue creating array? yes
mdadm: array /dev/md0 started.

Lihat dulu proses raid-nisasinya 😀 sampai selesai, jika sudah lanjutkan langkah selanjutnya. Perhatikan tulisan synching, jika tidak ada proses yang berjalan lagi, tekan ctrl+c untuk kembali ke prompt.

# watch cat /proc/mdstat

Berarti /dev/sdc & /dev/sdb ter-RAID menjadi /dev/md0. Lalu /dev/md0 masih bersifat RAW file system. Alias masih belum bisa ditempati. Untuk itu, format sekaligus partisi dengan perintah:

 

# fdisk /dev/md0
{ikuti perintahnya} Create= N, P=Primary, W= Write.

# mkfs.ext4 /dev/md0

Tunggu beberapa detik; proses formating akan dimulai.

Untuk melihat status /dev/md0 (raid) bisa gunakan perintah ini:

# mdadm –detail /dev/md0
/dev/md0:

Version : 1.2
Creation Time : Mon Feb 24 20:26:00 2014
Raid Level : raid0
Array Size : 75496448 (72.00 GiB 77.31 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Mon Feb 24 20:26:00 2014
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Chunk Size : 512K

Name : toys.twiranto.com:0 (local to host toys.twiranto.com)
UUID : eaca857f:7aceb1c5:dcd427cc:fa0ae6a1
Events : 0

Number Major Minor RaidDevice State
0 8 32 0 active sync /dev/sdc
1 8 16 1 active sync /dev/sdb

 

Hmmm agar bisa diakses, buatlah folder tempat penampungan mount. Saya buat di root.

# mkdir /raidhdd
# mount /dev/md0 /raidhdd

/raidhdd ini yang nantinya akan ditempati oleh file web-hosting. Mengapa? karena raid-0  bersifat lebih cepat dan karena menggunakan format file-system ext4, error biasanya jarang terjadi.

Untuk permanent pada saat OS boot, edit lah file /etc/fstab  dan /etc/mdadm.conf

# mdadm –detail -–scan > /etc/mdadm.conf

# nano /etc/fstab

tambahkan baris berikut pada akhir file /etc/fstab

/dev/md0 /raidhdd ext4 defaults 1 1

Silakan reboot untuk yakinnya. Jika terjadi sesuatu, sistem akan error ketika proses booting 🙁 Ikuti petunjuk untuk mode rescue. Misalnya me-mount read-write fstab, lalu buang entri /dev/md0, lalu konfigurasi ulang raid 0. dll.

Hmmm, selanjutnya dilakukan installasi paket Control-Panel yang free.  Setahu saya yang power-full dan free adalah Z Control Panel (ZPanel). Unduh script installasinya di

http://www.zpanelcp.com/download/

Perhatikan 32 & 64bitnya. Sesuaikan dengan tipe Centos.

# cd /root
# wget https://github.com/zpanel/zpanelx/releases/download/10.1.0/installer-10-1-0-centos-64.sh.x
# chmod +x installer-10-1-0-centos-64.sh.x
# ./installer-10-1-0-centos-64.sh.x

Jawablah pertanyaan-pertanyaan installasi ZPanel. Biasanya tidak jauh-jauh dari yES lalu asia/jakarta (sesuaikan dengan letak geo anda), dan yang paling penting FQDN (Fuly Qualified Domain Name). misalnya cp.namadomainanda.net. Script installasi tsb akan banyak mengunduh paket-paket seperti mail, database, webserver dll. Tetapi jumlah besaran yang didownload tidaklah sampai 70 Mb.

Anehnya proses fetching paket (yum install) tidak terlihat, dan kalau tidak salah, installasi akan me-reboot system otomatis 🙁 — Setelah semuanya terinstall, untuk login anda membutuhkan username yang pre-setup (dibuat otomatis oleh installer). Username & Password Zpanel ada difile /root/password.txt

# cat /root/password.txt

Buka browser Dari PC lain atau (atau install desktop, tetapi saya tidak sarankan). ke alamat FQDN (atau buat sembarang di /etc/hostname/). misalnya karena saya sudah membuka akses port 80 dari router ke mesin centos saya cukup ketikkan http://toys.twiranto.com. Oh ya gunakan user zadmin untuk login ke web-interface.

ZPanel mungkin tidak sebagus CPanel dkk (Control Panel berbayar). Ini seperti membandingkan SMF (Simple Machine Forum) dengan VBulletin 😀 Tetapi bukanlah faktor yang besar jika menggunakan Software pengendali tidak berbayar. Oh ya, Zpanel untuk support premiumnya berbayar juga. Jadi Zpanel bukanlah program yang bisa dipandang sebelah mata begitu saja.

Untuk saat ini script installasi berjalan mulus pada sistem Centos 32-64bit dan Ubuntu LTS 32/64bit. Untuk OS yang lain harap trial-error dan ambil paket .tar.gz.

zcpanel2
Menu didalam ZPanel

zcpanel

Untuk penggunaan Zpanel silakan trial-error sendiri. Penggunaannya cukup mudah. Tetapi yah balik ke berbayar dan tidak berbayarnya tadi 😀

Ada baiknya install juga Webmin

# cd /root
# wget http://prdownloads.sourceforge.net/webadmin/webmin-1.670-1.noarch.rpm
# rpm -U webmin-1.670-1.noarch.rpm

Untuk membuka Webmin arahakan browser ke http://ip:10000.

webmin ss
Tampilan Webmin dan sekilas info.

Oke. Selanjutnya dibutuhkan suatu billing system yang agak lumayan; sperti halnya control panel, yang berbayar biasanya lebih mudah dan lebih mantap 😀 Alternatif yang free ada banyak misalnya BoxBilling http://www.boxbilling.com/ — ISPConfig (lengkap dengan Controlpanelnya) http://www.ispconfig.org/files/category/1-ispconfig.

Installasi biasanya mudah, hanya menggunakan autoscript installer. Tinggal chmod nama file scriptnya, jawab pertanyaan, lihat pesan installasi, dan selesai.

boxbilling logo ispconfig

 

Jadi kesimpula artikel ini: Centos+konfig dasar. Software Control Panel, Billing. Dan yang terakhir adalah Marketing.

Nah untuk yang terakhir ini yang agak susah 😀 Saya pernah baca buku masalah strategi penjualan barang. Dan agak kaget; karena hampir 1/3 dari capital untuk belanja iklan. Sayangnya saya lupa judul dan pengarang buku tsb 😀 Entah karena memang buku minjam atau dipinjam tidak kembalikan lagi -_-

Cara iklannya? hmmm Bisa melalui Google AdWords, Iklan di facebook dll. Atau bahkan kalau perlu iklan banner di forum-forum yang berkaitan dengan web-developer (atau minimal aktiv menjadi member). Analoginya gini, yang ikutan iklan saja belum tentu laku, apalagi yang ga ngiklan 😀

Post By Tommy Wiranto (68 Posts)

Rasa ingin tahunya, terkadang 101% -- petualang yang tertahan. Terkadang sombong, tetapi pada tempatnya.

Website: →

Connect