Disediakan Oleh:
b. Tekan <ENTER>
c. Pilih OK sekiranya hendak membuat media test (mengambil masa beberapa minit) atau
Skip media test.
1
d. Pilih Next.
e. Pilih bahasa yang digunakan untuk Installation - default: English (English) dan klik pada
Next.
2
f. Pilih jenis keyboard yang digunakan – default: U.S. English dan klik Next.
g. Warning mengatakan partition table tidak dapat dibaca disebabkan belum di Initialized.
Klik Yes untuk initialized dan padam semua data di partition table.
3
2. Membuat hard disk partition
a. Pilih “Remove all partitions on selected drives and create default layout” untuk format
dan padam segala data dan partition di dalam hard disk.
b. Tick pada “Review and modify partitioning layout” dan klik Next.
c. Warning mengatakan semua partition pada hard disk akan dibuang. Klik Next.
4
d. Kebiasaannya, hard disk di dalam linux dikenali sebagai sd(turutan) atau hd(turutan).
Sd(turutan) selalunya digunakan hard disk adalah SATA, SCSI atau USB manakala
hd(turutan) digunakan sekiranya hard disk adalah IDE. “Turutan” mewakili bilangan ke
berapa hard disk di dalam server. Sebagai contoh:
i. Sda – Hard disk SATA/SCSI/USB pertama
ii. Sdb – Hard disk SATA/SCSI/USB kedua
Konsep yang sama digunakan bagi hard disk IDE seperti hda, hdb, hdc dan seterusnya.
Di dalam hard disk pula, ia akan dipecahkan lagi ke beberapa partition dan dikenalpasti
dengan nombor dibelakang seperti:
i. Sda1 – Partition pertama bagi sda
ii. Sdb2 – Partition kedua bagi sda
Jenis filesystem yang selalu digunakan bagi Linux pada masakini adalah ext3.Namun
terdapat pilihan filesystem seperti ext2, ext4, reiserFS, reiser4, jfs, xfs dan lain-lain.
5
Berikut adalah penerangan kepada struktur direktori utama dalam Linux:
Direktori Penerangan
/ Root atau permulaan bagi struktur direktori
/root Direktori home bagi pengguna root
/home Direktori home bagi pengguna lain
/bin Menyimpan arahan linux semasa boot dan arahan yang biasa digunakan
pengguna biasa
/sbin Sama seperti /bin tetapi arahan bukan untuk pengguna biasa
/proc Merupakan virtual directory yang digunakan untuk menyimpan process
/usr Menyimpan segala arahan, library, fail manual dan lain-lain bagi pengguna biasa
/boot Menyimpan fail yang digunakan semasa proses boot oleh bootloader seperti
GRUB atau LILO. Juga menyimpan kernel images.
/lib Shared libraries yang diperlukan bagi program pada filesystem.
/dev Menyimpan fail driver bagi peranti seperti hard disk, serial ports dan lain-lain.
/etc Fail konfigurasi spesifik bagi mesin.
/var Mengandungi fail yang berubah seperti mail, printer spool, fail sementara
/opt Menyimpan pakej perisian yang tidak wajib.
/mnt Mount point bagi membuat mount sementara oleh pentadbir sistem.
/tmp Menyimpan fail sementara.
6
e. Pastikan “The GRUB boot loader will be installed on /dev/sda” ditandakan. Sekiranya
hendak meletakkan katalaluan pada boot loader, pilih “Use a boot loader password”.
Klik Next.
7
b. Pastikan “Enable IPv4 support” bertanda. Masukkan alamat IP dan Subnet Mask ke
dalam ruang yang disediakan dan klik OK. Tanda pada “Enable IPv6 Support” sekiranya
mahu membolehkan sokongan IPv6 pada server.
c. Pada bahagian hostname, setkan secara manual dengan memasukkan hostname bagi
server. Masukkan juga konfigurasi Gateway, Primary DNS dan Secondary DNS sekiranya
ada. Tekan Next.
8
4. Menyambung proses installation.
a. Pilih region Asia/Kuala_Lumpur dan Tekan Next.
9
c. Software installation akan dibuat secara manual, oleh itu boleh terus tekan Next.
d. Tekan Next.
10
e. Tunggu sehingga proses installation tamat.
11
g. Setelah PC restart, tunggu sehingga skrin ini keluar dan klik pada Forward.
12
6. Menyambung proses installation.
a. Pada SELinux Setting, pilih Disabled disebabkan ciri-ciri ini tidak perlu digunakan. Tekan
Forward.
13
c. Pada bahagian Date and Time, pastikan maklumat tarikh dan masa adalah tepat dan
tekan Forward. Sekiranya hendak menggunakan fungsi Network Time Protocol (NTP),
tekan pada tab Network Time Protocol.
d. Tandakan pada “Enable Network Time Protocol”. Secara default terdapat 3 NTP Server
yang disediakan tetapi perlukan capaian ke Internet. Sekiranya terdapat NTP Server
sendiri atau lain, tambah dengan tekan pada Add. Tekan Forward setelah tamat
konfigurasi.
14
7. Mencipta pengguna server
a. Sistem akan meminta pengguna mencipta 1 pengguna server (selain root) dan secara
default, pengguna yang akan dicipta ini mempunyai hak Administrator. Masukkan
username, nama penuh dan kata laluan dan tekan Forward.
15
b. Tekan Finish untuk menamatkan proses Installation dan server akan Reboot semula.
16
b. Menu utama Desktop Centos Linux adalah Application, Places dan System.
c. Pada menu Applications terdapat perisian dan aplikasi yang biasa digunakan seperti
Word Editor, Picture Editor, Video Player, Games dan lain-lain.
17
d. Pada menu Places terdapat pautan ke Folder Home, Desktop, Computer, CD/DVD Drive
dan Network Server.
e. Pada menu System terdapat 2 submenu yang utama iaitu Preferences dan
Administration. Bagi submenu Preferences, ia lebih kepada fungsi Desktop seperti
Background, File Manamgement, Fonts, Keyboard, Mouse, Screensaver dan sebagainya.
18
f. Bagi submenu Administration, ia lebih kepada fungsi pengurusan server seperti
Authentication, Masa dan Tarikh, Perkakasan, Rangkaian, Services, Pengguna dan lain-
lain.
g. Bagi membuka Termninal, klik kanan pada background Desktop dan pilih Open Terminal.
19
MODUL 2: ARAHAN ASAS LINUX
b. Segala arahan, nama fail dan direktori di dalam Linux adalah case sensitive. Elakkan
menamakan fail atau direktori dengan menggunakan <spaces> dan special character
seperti ( / * & % ? ) dan lain-lain. Cara terbaik adalah menggunakan aksara alphanumeric
iaitu abjad dan nombor serta _ (underscore) dan . (dot), contohnya my_big_program.c.
c. Berikut adalah senarai arahan asas yang boleh digunakan bagi menguruskan direktori
dan fail:
Arahan Kegunaan
ls -a Menyenaraikan semua fail dan direktori
ls -al Menyenaraikan semua fail dan direktori termasuk attribute
dan parameter fail/direktori seperti saiz, pemilik, tarikh
dicipta dan sebagainya
mkdir <nama direktori> Membuat direktori baru
cd <direktori> Masuk ke dalam struktur direktori yang dinyatakan
cd .. Undur satu direktori ke belakang (parent directory)
pwd Memaparkan kedudukan direktori semasa
cp <fail1><fail2> Salin fail1 dan namakan sebagainya fail2
mv <fail1><fail2> Pindah/rename fail1 ke fail2
rm <fail> Hapus fail
20
rmdir <direktori> Hapus direktori kosong
rm -Rf <direktori/fail> Hapus direktori yang mempunyai kandungan secara
recursive dan force
cat <fail> Memaparkan fail (tambah | more untuk memaparkan fail
sedikit demi sedikit)
less <fail> Sama seperti cat <fail> | more
head <fail> Memaparkan beberapa baris kandungan fail yang teratas
tail <fail> Memaparkan beberapa baris kandungan fail yang terbawah.
Kedua arahan head dan tail boleh ditambah dengan
parameter -n <bilangan baris> bagi memaparkan kandungan
mengikut baris yang dikehendaki, contohnya
# tail -n 100 abc.txt
grep ‘katakunci’ <fail> Mencari katakunci dalam fail yang dinyatakan
wc <fail> Memaparkan bilangan baris, perkataan dan aksara di dalam
fail
sort <fail> Susun kandungan fail mengikut abjad dan paparkan ke
terminal
touch <fail1> Mencipta fail kosong bernama fail1
Arahan Kegunaan
arahan >[fail1] Cipta satu fail baru bernama fail1 dan output arahan
disimpan ke fail1
arahan >> [fail1] Simpan output arahan dengan menambah ke dalam fail1
sedia ada
arahan < [fail1] Melaksanakan arahan berdasarkan maklumat yang terdapat
di dalam fail1
arahan1 | arahan2 Melaksanakan arahan2 selepas arahan1. Contohnya:
21
e. Arahan juga boleh digunakan bersama wildcards. Berikut adalah contoh arahan dan
juga arahan lain yang boleh digunakan untuk melihat panduan arahan atau manual
page:
Arahan Kegunaan
* Match aksara tanpa had, contoh:
# ls list* - match semua perkataan bermula dengan list
# ls *list - match semua perkataan berakhir dengan list
? Match hanya 1 aksara, contoh:
# ls ?ouse
- match satu huruf sebelum ouse seperti mouse, house.
man arahan1 Paparkan manual/panduan penuh penggunaan bagi arahan1
whatis arahan1 Paparkan maklumat singkat mengenai arahan1
apropos ‘katakunci’ Paparkan maklumat singkat mengenai mana-mana arahan
yang mempunyai katakunci yang dinyatakan
Arahan Kegunaan
date Paparkan masa dan tarikh semasa server
find . -name "*.txt" Membuat carian fail *.txt di direktori semasa
history Paparkan arahan yang pernah digunakan sebelum ini.
Arahan di bawah digunakan untuk menghadkan ingatan
history ke 100 arahan sebelum
# set history=100
locate <fail> Sama seperti find tetapi proses carian lebih laju kerana ia
akan membuat carian di dalam database direktori. Untuk
mengemaskini database direktori, jalankan arahan
# updatedb
who Paparkan senarai pengguna yang sedang login ke server
menerusi telnet/ssh atau desktop
whoami Paparkan nama pengguna sendiri yang sedang digunakan
Arahan Kegunaan
gzip fail1 Compress fail1 ke fail1.gz.
gunzip fail1.gz Uncompress fail1.gz dan dapatkan fail asal fail1. Fail fail1.gz
akan dipadam.
tar -cvzf dir1.tar.gz dir1/ Gabungkan direktori dir1 ke dalam satu fail dan compress fail
tersebut dengan kaedah gzip. Penjelasan parameter:
- c = cipta archive baru
- v = verbose, paparkan fail yang akan di archived
- z = compression fail menggunakan kaedah gunzip
- f = simpan archive ke fail yang dinyatakan
22
tar -xvzf dir1.tar.gz Extract dan uncompressed fail dir1.tar.gz ke direktori
semasa. Penjelasan parameter:
- x = extract fail archive
Parameter lain sama seperti di atas
tar -cvjf dir1.tar.bz2 Gabungkan direktori dir1 ke dalam satu fail dan compress fail
dir1/ tersebut dengan kaedah bzip. Penjelasan parameter:
- j = compression fail menggunakan kaedah bzip
tar -xvjf dir1.tar.bz2 Extract dan uncompressed fail dir1.tar.bz2 ke direktori
/home/abc/ /home/abc/.
h. Untuk edit fail teks di dalam linux, terdapat pelbagai text editor yang boleh digunakan.
Text editor yang sering digunakan adalah vi/vim editor dan nano.
Arahan Kegunaan
vi [nama fail] Buka fail yang dinyatakan menggunakan text editor vi/vim.
vim [nama fail] Text editor ini agak sukar digunakan. Ia terbahagi kepada 2
mod iaitu mod command dan mod insert.
Fail Kegunaan
/etc/passwd Menyimpan maklumat pengguna seperti username, userid,
group id, home directory dan command shell (bash)
/etc/group Menyimpan maklumat kumpulan pengguna seperti nama
group, group id, senarai nama pengguna yang menjadi ahli
kepada group
/etc/shadow Menyimpan maklumat kata laluan pengguna dalam bentuk
encrypt.
23
b. Bagi menguruskan pengguna dan kumpulan pengguna boleh menggunakan arahan-
arahan berikut:
Arahan Kegunaan
useradd Untuk menambah pengguna baru. Parameter yang boleh
digunakan:
useradd -gusers -Gmgmt -d home directory
-s/bin/shell -pxxxx -s starting program (shell)
-d/home/roger -m roger -p password
-g (primary group assigned to the users)
-G (Other groups the user belongs to)
-m (Create the user's home directory)
groupmod -n btmbptm Arahan disebelah akan mengubah nama group bptm ke btm.
groudel Padam group sedia ada.
groupdel btm
24
c. Setiap fail dan direktori dalam linux mempunyai pemilik dan kumpulan pemilik yang
dipanggil access right. Gambarajah di bawah (dipapar dengan arahan ls -al)
menunjukkan penerangan mengenai access right bagi file1.
Lebih terperinci, maklumat access right bagi fail/direktori adalah seperti jadual di
bawah:
Permission rwx boleh diterjemahkan kepada 7 atau 111 dalam bentuk binari. Lain-lain
bentuk permission:
Oleh itu dalam bentuk permission penuh, sebagai contoh, rwxrwxrwx boleh
diterjemahkan ke 777 dalam bentuk numeric. Contoh lain seperti rwxrw-r-- boleh
diterjemahkan ke 764.
25
Berikut adalah arahan yang boleh digunakan bagi mengubah permission sesuatu
fail/direktori:
Arahan Penerangan
chmod [permission Membuat perubahan pada permission sesuatu fail/direktori.
numeric] <nama fail>
Arahan seperti contoh di sebelah akan menyebabkan
chmod 777 abc.txt permission bagi fail abc.txt akan diubah ke rwxrwxrwx.
chown Membuat perubahan pada pemilik dan group bagi sesuatu
[username]:[group] fail/direktori.
<nama fail>
Arahan di sebalah akan menyebabkan fail abc.txt diubah
chown ali:bptm abc.txt pemilikan kepada ali dan group bptm.
b. Konfigurasi rangkaian boleh dilakukan secara manual dan juga automatik dengan
penggunaan DHCP. Namun kebiasaannya bagi server, konfigurasi rangkaian dilakukan
secara manual kerana IP Address yang sama pada setiap waktu perlu ditetapkan.
Konfigurasi rangkaian perlu dilakukan pada setiap network interface. Kebiasaanya nama
network interface bermula dengan eth0, eth1, eth2 dan seterusnya. Konfigurasi
rangkaian ini disimpan di dalam fail /etc/sysconfig/networking/devices/ifcfg-eth* dan
kandungannya seperti di bawah. Konfigurasi IP Address, Subnet Mask, Network ID dan
Broadcast ID perlu dilakukan di dalam fail ini.
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
BROADCAST=10.23.52.255
HWADDR=00:0C:29:31:9A:E9
IPADDR=10.23.52.235
IPV6INIT=yes
IPV6_AUTOCONF=yes
NETMASK=255.255.255.0
NETWORK=10.23.52.0
ONBOOT=yes
26
c. Sekiranya memerlukan konfigurasi rangkaian secara automatik menggunakan DHCP,
konfigurasi fail /etc/sysconfig/networking/devices/ifcfg-eth* boleh dilakukan seperti
berikut di mana baris BOOTPROTO perlu disetkan ke dhcp dan konfigurasi IP Address
lain tidak perlu dimasukkan.
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:0C:29:29:1E:EF
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
d. Konfigurasi DNS disimpan di dalam fail nano /etc/resolv.conf seperti di bawah. Baris
pertama iaitu search [domain] digunakan untuk menetapkan domain organisasi/ISP
yang akan digunakan oleh server ini. Baris seterusnya iaitu nameserver [IP Address]
digunakan untuk menetapkan IP Address bagi Primary DNS, dan baris seterusnya untuk
Secondary DNS dan seterusnya sekiranya ada.
search treasury.gov.my
nameserver 10.23.59.4
nameserver 172.30.0.51
nameserver 172.30.0.50
Bagi melihat IP Address dan lain-lain konfigurasi rangkaian yang telah dibuat pada
server, jalankan arahan berikut:
# ifconfig
27
4. Menggunakan arahan tools tertentu untuk menyemak keadaan server.
a. Terdapat beberapa status keadaan server yang perlu dan boleh dipantau bagi
memastikan kesihatan server seperti hard disk space, CPU load, memory usage dan
network traffic load. Jadual di bawah merupakan beberapa arahan asas yang boleh
digunakan untuk memantau keadaan server:
Arahan Kegunaan
lsb_release -a Memaparkan versi operating system yang digunakan.
htop Sama seperti top tetapi mempunyai antaramuka lebih menarik dan
mudah difahami serta load bagi setiap CPU Processor boleh dilihat
secara graphical. Perisian ini perlu diinstall terlebih dahulu seperti
berikut:
a) Cipta satu fail bernama dag.repo di direktori /etc/yum.repos.d
b) Masukkan butiran berikut ke dalam fail dag.repo dan simpan.
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=0
enabled=1
c) Jalankan arahan berikut dan ikut arahan yang diberikan:
# yum install htop
28
ps -ef Memaparkan imbasan senarai proses yang sedang berjalan di server.
ps –ef | more
ps –ef | grep
<proses>
df -h Memaparkan jumlah hard disk usage dan free space serta peratusan
bagi setiap partition yang dibuat di dalam server. Parameter -h yang
digunakan adalah human-readable bermaksud paparan size adalah
dalam bentuk yang mudah difahami (Megabyte, Gigabyte).
29
fdisk -l Memaparkan maklumat hard disk partition yang telah dikonfigurasi
dalam server.
free -m Memaparkan jumlah penggunaan memory RAM dan swap yang sedang
digunakan dan yang masih kosong. Parameter -m bermaksud paparan
jumlah dalam format Megabait. Parameter yang boleh digunakan juga
adalah seperti -b (byte), -k (KB), -g (GB).
du -sh * Arahan ini akan memaparkan jumlah hard disk space yang telah
digunakan bagi setiap direktori di dalam direktori semasa. Contoh di
bawah menunjukkan arahan ini dijalankan di directori /var.
iptraf Arahan ini digunakan untuk menjalankan IPTraf iaitu sebuah program
yang digunakan untuk melihat network communication dan traffic di
server. Pilih menu IP traffic monitor > eth0 untuk melihat network
traffic bagi network interface eth0. Komunikasi rangkaian di antara
30
server dan hos lain boleh dilihat di paparan tersebut dan analisa boleh
dibuat sekiranya terdapat komunikasi luar biasa yang berkemungkinan
menyebabkan prestasi server menurun. Program ini perlu diinstall
terlebih dahulu dengan arahan:
# yum install iptraf
b. Seperti contoh di bawah, arahan tersebut apabila dijalankan satu persatu secara
manualakan menyebabkan perkataan yang diecho dipaparkan ke skrin.
Semua arahan di atas boleh dikumpulkan dan disatukan ke dalam satu fail, contohnya
namakan sebagai welcome.sh.
31
Untuk menjalankan shell script yang telah dibangunkan tadi, taip arahan di bawah di
direktori yang sama dengan fail welcome.sh
# sh welcome.sh
Output bagi arahan di dalam shell script tersebut akan dijalankan sekaligus seperti
berikut:
c. Contoh lain penggunaan shell script adalah untuk membuat file backup, contohnya
terdapat fail yang perlu kita backup setiap hari. Sebagai contoh kaedah yang digunakan
membuat file backup adalah:
i. Copy fail senarai.txt ke fail lain dan namakan mengikut tarikh, contohnya
senarai20101108.txt.
ii. Tukar access right bagi fail yang telah dibackup ke 600.
iii. Padam fail asal senarai.txt.
iv. Cipta satu fail baru senarai.txt.
v. Pinda access right bagi fail senarai.txt ke 666.
Untuk membangunkan shell script yang akan melaksanakan semua arahan di atas, cipta
satu fail contohnya backup_senarai.sh dan masukkan semua arahan di atas dengan
sedikit perubahan dengan penambahan arahan $(date +"%Y%m%d") agar tarikh dapat
dijana secara automatik serta menggunakan full path agar arahan ini dapat dijalankan di
mana-mana direktori semasa.
Segala proses backup fail senarai.txt akan dijalankan secara automatik apabila arahan
tersebut dijalankan.
32
d. Contoh pembangunan shell script yang telah diberikan dapat memberi gambaran
bahawa kita boleh memanipulasikan segala arahan yang terdapat dalam server Linux
dan dapat dijalankan dengan begitu mudah. Namun, pentadbir sistem masih lagi perlu
menjalankan arahan untuk membuatkan shell script tersebut diproses setiap hari seperti
contoh untuk membuat backup itu tadi. Akan tetapi dengan penggunaan cronjob,
pentadbir sistem dapat menetapkan shell script atau apa sahaja arahan untuk dijalankan
pada waktu dan hari yang dikehendaki secara automatik tanpa perlu pentadbir sistem
menjalankan sendiri secara manual.
01 22 * * * root sh /var/www/html/backup_senarai.sh
Bagi menjalankan arahan contohnya updatedb pada setiap 1jam, arahan cronjob berikut
boleh dimasukkan ke dalam fail /etc/crontab:
Bagi menjalankan arahan yang sama pada setiap 5 minit, arahan cronjob berikut boleh
dimasukkan ke dalam fail /etc/crontab:
Dengan gabungan shell script dan juga cronjob, ia dapat memudahkan serta membantu
pelbagai tugas seharian yang perlu dilakukan oleh pentadbir sistem
33
MODUL 3: PENYEDIAAN WEB SERVER
1. Pemasangan web server Apache 2 di server serta sokongan PHP dengan kaedah Yum Install.
a. Pemasangan akan menggunakan versi perisian seperti berikut:
i. Apache – Apache 2.2++
ii. PHP – PHP 5.3++
b. Dengan menggunakan Yum Install, segala proses installation akan dilakukan secara
automatik dan installer file juga tidak perlu dicari. Namun bagi menginstall versi terkini
Apache dan PHP, kita perlu menggunakan Yum Repository yang terkini daripada Fedora
Redhat Epel dan Remi Repository. Jalankan arahan berikut untuk tujuan tersebut:
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
# wget http://rpms.famillecollet.com/el5.i386/remi-release-5-8.el5.remi.noarch.rpm
# rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
c. Buat installation Apache Web Server dan PHP dengan menggunakan arahan berikut.
Tunggu sehingga proses installation selesai. Jawab Y (Yes) pada semua soalan.
# yum install httpd php
Dengan ini Apache 2.2.3 dan PHP 5.3.3 telah selesai diinstall.
d. Jalankan arahan berikut bagi menetapkan Apache Web Server agar dijalankan secara
automatik setiap kali server mula beroperasi.
# chkconfig httpd on
34
f. Buka Internet Browser di dalam server dan taip http://localhost/. Sekiranya page seperti
di bawah muncul maka installation berjaya.
2. Pemasangan web server Apache 2 di server serta sokongan PHP dengan kaedah RPM Install.
a. Pemasangan akan menggunakan versi perisian seperti berikut:
i. Apache – Apache 2.2++
ii. PHP – PHP 5.3++
b. Untuk membuat installation menggunakan RPM iaitu RedHat Package Manager, fail
installer Apache dan PHP yang berformat RPM perlu diperolehi. Untuk mendapatkan fail
tersebut boleh dicari melalui Google. Fail tersebut boleh didownload dahulu dan
kemudian dipindah ke server ataupun didownload secara terus menggunakan wget dan
fail tersebut akan disimpan di direktori semasa. Contoh berikut merupakan cara untuk
mengdownload secara terus daripada laman web sumber:
# wget ftp://ftp.icm.edu.pl/vol/rzm1/linux-centos/5.5/os/i386/CentOS/httpd-2.2.3-43.el5.centos.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/php-5.3.3-1.el5.remi.i386.rpm
35
d. Apache akan berjaya diinstall namun PHP tidak akan berjaya diinstall disebabkan
masalah dependencies seperti berikut:
# wget http://rpms.famillecollet.com/el5.i386/php-cli-5.3.3-1.el5.remi.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/php-common-5.3.3-1.el5.remi.i386.rpm
Sistem akan cuba untuk membuat installation package PHP, PHP-cli dan PHP-common
namun akan ada masalah dependencies yang lain.
# wget http://download.fedora.redhat.com/pub/epel/5/i386/libedit-2.11-2.20080712cvs.el5.i386.rpm
# rpm -Uvh libedit*.rpm php*.rpm
Dengan ini Apache 2.2.3 dan PHP 5.3.3 telah selesai diinstall.
e. Jalankan arahan berikut bagi menetapkan Apache Web Server agar dijalankan secara
automatik setiap kali server mula beroperasi dan mulakan Apache.
# chkconfig httpd on
# service httpd start
36
f. Buka Internet Browser di dalam server dan taip http://localhost/. Sekiranya page seperti
di bawah muncul maka installation berjaya.
3. Pemasangan web server Apache 2 serta sokongan PHP dan MySQL dengan kaedah Tarball.
a. Pemasangan akan menggunakan versi perisian seperti berikut:
i. Apache – Apache 2.2++
ii. PHP – PHP 5.3++
iii. MySQL – MySQL 5.1++
b. Teknik installation menggunakan Tarball adalah teknik yang paling rumit dan mengambil
masa. Sekiranya hendak menggunakan web server asas tanpa perlu membuat
konfigurasi kepada source web server adalah disarankan menggunakan teknik Yum
Install atau RPM. Teknik installation Tarball ini digunakan sekiranya pentadbir sistem
ingin membuat customization sendiri pada library dan komponen web server.
# wget http://lawyersdb.com/mirrors/apache//httpd/httpd-2.2.17.tar.gz
# wget http://my2.php.net/get/php-5.3.3.tar.gz/from/my.php.net/mirror
# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-
5.1.52.tar.gz/from/http://ftp.iij.ad.jp/pub/db/mysql/
37
d. Extract semua fail tarball menggunakan arahan berikut dan direktori bagi setiap
komponen akan tercipta:
# cd /usr/local/src/mysql-5.1.52
# chown -R root.root *
# make clean
# ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-
mysqld-user=mysql --with-unix-socket-path=/tmp/mysql.sock --without-comment --
without-debug
// Tunggu dalam 5 minit
g. Buat konfigurasi MySQL yang baru diinstall dengan mengikut arahan berikut satu
persatu. Penerangan bagi setiap arahan dan fungsinya boleh dirujuk di laman web
http://www.lamphowto.com/.
# ./scripts/mysql_install_db
# chown -R root:mysql /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql/data
# cp support-files/my-small.cnf /etc/my.cnf
# chown root:sys /etc/my.cnf
# chmod 644 /etc/my.cnf
# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
# ldconfig
# cp ./support-files/mysql.server /etc/rc.d/init.d/mysql
38
# chmod +x /etc/rc.d/init.d/mysql
# /sbin/chkconfig mysql on
# cd /usr/local/mysql/bin
# for file in *; do ln -s /usr/local/mysql/bin/$file /usr/bin/$file; done
Jika tiada sebarang error, MySQL versi 5.1.52 telah berjaya diinstall dengan jayanya.
# cd /usr/local/src/httpd-2.2.17
# make clean
# ./configure --prefix=/usr/local/apache --enable-shared=max --enable-module=rewrite
--enable-module=so
// Tunggu dalam 5 minit
// Library libxml2-devel perlu diinstall terlebih dahulu bagi mengelakkan error kemudian
# yum install libxml2-devel
# cd /usr/local/src/php-5.3.3
# ./configure --with-apxs2=/usr/local/apache/bin/apxs --disable-debug --enable-ftp --
enable-inline-optimization --enable-magic-quotes --enable-mbstring --enable-safe-mode
--enable-wddx=shared --enable-xml --with-gettext --with-mysql=/usr/local/mysql --with-
regex=system--with-zlib-dir=/usr/lib
// Tunggu dalam 5 minit
# cp php.ini-production /usr/local/lib/php.ini
j. Lakukan sedikit konfigurasi Apache Web Server bagi memulakan service web server:
# ln -s /usr/local/apache/conf/httpd.conf /etc/httpd.conf
# ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
# ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S90apache
39
k. Lakukan sedikit konfigurasi Apache Web Server dengan buka fail /etc/httpd.conf dan
cari baris berikut:
DirectoryIndex index.html
// Untuk menyemak sama ada service Apache sudah dimulakan, jalankan arahan
// berikut. Sekiranya terdapat proses httpd di senarai maka Apache sudah dijalankan
# ps –ef | grep httpd
m. Buka Internet Browser di dalam server dan taip http://localhost/. Sekiranya page seperti
di bawah muncul maka installation berjaya. Dengan ini Apache 2.2.17, PHP 5.3.3 dan
MySQL 5.1.52 telah berjaya diinstall.
40
n. Bagi melihat samada PHP sudah berjaya diintegrasi dengan Apache Web Server, cipta
satu fail bernama phpinfo.php di root direktori di direktori seperti berikut:
i. Installation menggunakan Yum Install dan RPM = /var/www/html/
ii. Installation menggunakan Tarball = /usr/local/apache/htdocs/
<?php
Phpinfo();
?>
41
MODUL 4: PENYEDIAAN PANGKALAN DATA
b. Dengan menggunakan Yum Install, segala konfigurasi dan integration dengan PHP akan
dilakukan secara automatik. Jalankan arahan berikut untuk mula installation:
Setelah tamat installation, jalankan arahan berikut untuk menetapkan agar MySQL
5.1.52 server ini dijalankan secara automatik setiap kali server bermula:
# chkconfig mysqld on
c. Mulakan service MySQL dan restart service Apache dengan arahan berikut untuk refresh
integrasi antara PHP dan MySQL:
Cipta fail phpinfo.php jika belum dicipta. Buka Internet Browser di dalam server dan taip
http://localhost/phpinfo.php.Scroll ke bawah dan cari bahagian mySQL. Sekiranya
tedapat maklumat MySQL di dalam page phpinfo.php seperti di bawah maka integrasi di
antara PHP dan MySQL telah berjaya dilaksanakan.
42
2. Pemasangan pangkalan data MySQL dengan kaedah RPM Install.
a. Pemasangan akan menggunakan versi perisian seperti berikut:
i. MySQL – MySQL 5.1.x
b. Untuk membuat installation menggunakan RPM fail installer MySQL yang berformat
RPM perlu diperolehi. Ia boleh diperolehi daripada laman web MySQL atau cari melalui
Google. Komponen PHP-MySQL,PHP-Pdo, Perl-DBI dan Perl-DBD-MySQL juga perlu
didownload bagi membuat installation dan integrasi antara PHP dan MySQL. Berikut
adalah mirror site yang digunakan untuk mendapatkan fail-fail tersebut:
# wget ftp://ftp.icm.edu.pl/vol/rzm1/linux-centos/5.5/os/i386/CentOS/perl-DBI-1.52-2.el5.i386.rpm
# wget ftp://ftp.icm.edu.pl/vol/rzm1/linux-centos/5.5/os/i386/CentOS/perl-DBD-MySQL-3.0007-
2.el5.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/mysql-server-5.1.52-1.el5.remi.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/mysql-5.1.52-1.el5.remi.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/mysql-libs-5.1.52-1.el5.remi.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/mysqlclient15-5.0.67-1.el5.remi.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/sqlite2-2.8.17-2.el5.remi.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/php-pdo-5.3.3-1.el5.remi.i386.rpm
# wget http://rpms.famillecollet.com/el5.i386/php-mysql-5.3.3-1.el5.remi.i386.rpm
c. Jalankan arahan berikut untuk mula membuat installation MySQL dan komponen-
komponen lain.
Setelah tamat installation, jalankan arahan berikut untuk menetapkan agar MySQL
5.1.52 server ini dijalankan secara automatik setiap kali server bermula:
# chkconfig mysqld on
d. Mulakan service MySQL dan restart service Apache dengan arahan berikut untuk refresh
integrasi antara PHP dan MySQL:
43
Cipta fail phpinfo.php jika belum dicipta. Buka Internet Browser di dalam server dan taip
http://localhost/phpinfo.php. Scroll ke bawah dan cari bahagian mySQL. Sekiranya
tedapat maklumat MySQL di dalam page phpinfo.php seperti di bawah maka integrasi di
antara PHP dan MySQL telah berjaya dilaksanakan.
b. Masukkan arahan berikut untuk tetapkan katalaluan bagi user root MySQL.
c. Untuk masuk ke MySQL command-line tool, masukkan arahan berikut dan masukkan
katalaluan yang telah ditetapkan. Shell mysql> akan dipaparkan sekiranya berjaya:
# mysql -u root –p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.1.52 MySQL Community Server (GPL) by Remi
44
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
d. Untuk keselamatan, default database iaitu test perlu dibuang dan segala anonymous
user perlu dipadam terlebih dahulu.
e. Bagi melihat semua database yang terdapat di dalam MySQL, guna arahan berikut.
Secara default, terdapat 2 database sedia ada tidak termasuk database test yang telah
dipadam sebelum ini.
mysql>SHOWDATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.00 sec)
f. Untuk melihat senarai pengguna database yang telah didaftar, guna arahan berikut:
g. Untuk mencipta database baru dan grant privileges database tersebut ke user tertentu,
guna arahan berikut:
45
i. Untuk masuk dan menggunakan database yang ada di dalam MySQL, guna arahan
berikut:
k. Bagi melihat senarai table yang terdapat di dalam database semasa, guna arahan
berikut:
n. Bagi memasukkan data ke dalam table, guna arahan seperti contoh berikut:
o. Untuk memaparkan kandungan data di dalam table, guna arahan seperti contoh berikut:
46
p. Untuk mengemaskini data di dalam table, guna arahan seperti contoh berikut:
q. Untuk memadam data tertentu di dalam table, guna arahan seperti contoh berikut:
r. Bagi mengosongkan semua data di dalam table, guna arahan seperti berikut:
s. MySQL juga menyediakan tools untuk membuat backup database ke text file agar boleh
disimpan atau diimport ke tempat lain. Keluar dahulu daripada terminal mysql dan ikut
arahan berikut:
mysql> exit
// Contoh penggunaan
# mysqldump -u root -pzaq12wsx --databases aplikasidb > /var/www/html/aplikasidb_backup.sql
Fail backup yang telah dicipta tadi boleh dibuka dengan text editor untuk melihat isi
kandungannya.
t. Untuk restore atau import semula database yang telah dibackup ke text file, guna
arahan berikut, tetapi sebelum itu nama database yang hendak direstore perlu dicipta
terlebih dahulu.
// Contoh penggunaan
# mysql -u root -pzaq12wsx aplikasidb </var/www/html/aplikasidb_backup.sql
u. Banyak lagi syntax SQL Query lain yang boleh dimasuk dan diproses melalui MySQL
terminal ini. Untuk mempelajari SQL Query bolehlah membuat carian di Google atau
melalui website http://www.w3schools.com/sql/default.asp. Namun dengan
menggunakan database administration tool yang lain seperti PhpMyAdmin, pengurusan
database dapat dilakukan dengan mudah dengan bantuan antaramuka yang cantik dan
mudah difahami.
47
4. Membuat pemasangan PhpMyAdmin.
a. PhpMyAdmin merupakan aplikasi atau tools yang biasa digunakan oleh pentadbir sistem
dan pangkalan data untuk menguruskan database MySQL. Ini kerana ia sangat mudah
digunakan dan difahami. Dalam panduan ini, kita akan membuat installation dengan 2
cara iaitu menggunakan Yum Install dan juga Tarball.
Apabila arahan tersebut dijalankan, didapati terdapat banyak komponen tambahan lain
yang perlu diinstall bagi membolehkan PhpMyAdmin berjalan dengan sempurna seperti
php-gd, php-mbstring, libmcrypt dan lain-lain. Setelah installation tamat, restart service
Apache dengan arahan:
# service httpd restart
48
d. Setelah berjaya login, paparan seperti di bawah akan muncul. Melalui PhpMyAdmin,
pentadbir sistem dan pangkalan data boleh membuat segala pengurusan database
seperti mencipta database, mencipta table, mengubah struktur table, memasukkan
data, menghapus data, import dan export table dan lain-lain lagi fungsi berkaitan
database.
e. Bagi installation menggunakan Tarball pula, dapatkan tarball file PhpMyAdmin daripada
laman web http://www.phpmyadmin.net/home_page/downloads.php dan download
versiphpMyAdmin-3.3.8-all-languages.tar.gz. Boleh juga dapatkan terus menggunakan
arahan berikut (simpan fail di direktori /var/www/html/):
# wget http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.3.8/phpMyAdmin-
3.3.8-all-languages.tar.gz/download?use_mirror=autoselect
49
g. Buka Internet Browser di dalam server dan taip http://localhost/phpmyadmin.
Sekiranya PhpMyAdmin login page muncul maka PhpMyAdmin 3.3.8 telah berjaya
diinstall. Masukkan username database serta katalaluan untuk masuk ke dalam aplikasi
PhpMyAdmin.
h. Sekiranya tiada sebarang masalah anda akan berjaya login ke dalam aplikasi
PhpMyAdmin. Namun jika diperhatikan pada bahagian bawah terdapat beberapa error
message dipaparkan. Ia disebabkan beberapa komponen tambahan seperti yang dibuat
secara automatik dengan Yum Install tidak diinstall.
50
i. Restart semula service Apache dan refresh semula page http://localhost/phpmyadmin
dan login. Semua error mesej akan hilang kecuali satu iaitu “The configuration file now
needs a secret passphrase (blowfish_secret)”. Untuk menghilangkannya ikut arahan
berikut:
# cd /var/www/html/phpmyadmin
# cp config.sample.inc.php config.inc.php
Buka fail config.inc.php dan cari baris yang mengandungi perkataan berikut:
Masukkan apa-apa perkataan yang boleh dipakai sebagai blowfish secret seperti contoh:
Kemudian logout dan login semula ke dalam aplikasi PhpMyAdmin dan error tersebut
akan hilang. Dengan ini PhpMyAdmin sudah lengkap diinstall.
51
MODUL 5: KONFIGURASI TAMBAHAN PADA SERVER
b. Buka Internet Browser di komputer anda dan cuba buka laman web menggunakan IP
Address server yang telah disetup seperti contoh http://10.23.52.235. Anda akan
mendapati laman web tersebut tidak dapat dibuka disebabkan IPTables tidak membuka
port 80 kepada IP hos lain.
d. Bagi melihat rules dan status Firewall, guna arahan berikut dan output rulesnya akan
dipaparkan:
# iptables --list
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere
52
Jika dilihat pada rules yang dihighlightkan iaitu:
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
Ia menunjukkan port SSH iaitu 22 diterima (ACCEPT) dari mana-mana host (Anywhere).
e. Kita akan cuba membuat rules baru agar port 80 (http) dapat dibuka daripada tempat
lain menggunakan arahan berikut:
Penerangan arahan:
-I = Insert rules (ke chain INPUT/FORWARD/OUTPUT/lain-lain)
-p = Protocol (tcp/udp/all)
--dport = Port no. yang hendak dibuka/tutup
-j = Jump target polisi (ACCEPT/DROP/REJECT)
Jalankan arahan #iptables --list dan akan didapati satu rules baru telah dimasukkan:
ACCEPT tcp -- anywhere anywhere tcp dpt:http
Cuba akses laman web dari komputer anda dan kali ini didapati laman web tersebut
boleh dibuka.
f. Restart semula service iptables dan lihat semula rules dengan arahan:
# service iptables restart
# iptables --list
Didapati rules yang baru dimasukkan telah hilang. Untuk menetapkan rules secara kekal,
buka fail /etc/sysconfig/iptables, cari baris berikut (2 baris terakhir):
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
Simpan fail dan restart service iptables. Lihat semula rules dan rules baru untuk port 80
telah dimasukkan:
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
Cuba akses laman web dari komputer anda dan lihat semula hasilnya.
53
g. Kali ini kita akan mencuba untuk menutup port pula. Buka fail /etc/sysconfig/iptables,
cari baris syntax yang baru dimasukkan tadi dan gantikan dengan ACCEPT dengan DROP
seperti berikut:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Restart service iptables dan cuba akses laman web tersebut dari komputer anda dan
didapati laman web tersebut tidak dapat diakses.
h. Daripada komputer anda, cuba ping ke server yang telah dibangunkan seperti contoh
berikut:
C:\> ping 10.23.52.235
Pinging 10.23.52.235 with 32 bytes of data:
Reply from 10.23.52.235: bytes=32 time<1ms TTL=64
Didapati ping berjaya dilakukan. Kita akancuba block ICMP packet yang digunakan untuk
proses ping. Buka fail /etc/sysconfig/iptables dan cari syntax berikut:
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
Simpan fail, restart service iptables dan cuba ping server semula dari komputer anda.
Didapati ping ke server tersebut tidak akan berjaya disebabkan Request timed out.
i. Kadangkala terdapat keperluan untuk memblok akses ke server dari IP Address tertentu
atas sebab keselamatan. Untuk memblok IP Address tertentu buka fail
/etc/sysconfig/iptables dan cari baris berikut:
-A FORWARD -j RH-Firewall-1-INPUT
Restart service IPTables dan didapati IP Address tersebut akan diblok sepenuhnya
daripada membuat sebarang akses ke server tersebut seperti ping, http, ssh dan lain-
lain.
j. Terdapat banyak lagi function lain yang boleh dibuat menggunakan IPTables. Untuk
mempelajari lebih lanjut berkenaan IPTables boleh melawat
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables
54
2. Membuat konfigurasi virtual host pada web server Apache.
a. Apache Web Server yang telah dibangunkan mempunyai Document Root yang
digunakan untuk meletakkan aplikasi web yang dibangunkan seperti contoh
/var/www/html/. Di dalam direktori ini kita boleh membina pelbagai aplikasi web dan
kebiasaannya setiap aplikasi akan diletakkan di dalam direktori yang berasingan seperti
contoh:
i. Sistem Pendaftaran - /var/www/html/edaftar
ii. Portal Joomla - /var/www/html/joomla
iii. Forum Pengguna - /var/www/html/forumpengguna
Namun Apache Web Server membolehkan pentadbir sistem menghoskan setiap aplikasi
di dalam direktori Document Root mempunyai URL domain sendiri seperti
http://www.edaftar.com, http://joomla.abc.com dan sebagainya dengan menggunakan
fungsi Virtual Host.
Manakala dalam direktori forumpengguna, bina satu fail index.php dan masukkan kod
berikut:
<h1> Selamat Datang ke Forum Pengguna</h1>
c. Kini kita akan menghoskan sistem eDaftar sebangai www.edaftar.com dan Forum
Pengguna sebagai forum.abc.com. Buka fail /etc/httpd/conf/httpd.conf dan scroll
hingga ke page bawah sekali pada Section 3: Virtual Hosts dan masukkan syntax berikut:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.edaftar.com
ServerAlias edaftar.com
DocumentRoot /var/www/html/edaftar
</VirtualHost>
55
<VirtualHost *:80>
ServerName forum.abc.com
DocumentRoot /var/www/html/forumpengguna
</VirtualHost>
Simpan fail dan restart service httpd di server. Buka Windows Explorer pada komputer
anda dan buka fail C:\Windows\System32\drivers\etc\hosts. Masukkan 2 baris berikut:
Contoh:
10.23.52.235 www.edaftar.com
10.23.52.235 forum.abc.com
Simpan fail tersebut dan buka Internet Explorer. Masukkan url http://www.edaftar.com
dan http://forum.abc.com. Sekiranya tiada masalah pada konfigurasi, URL
http://www.edaftar.com akan memaparkan “Selamat Datang ke Sistem eDaftar”
manakala URL http://forum.abc.com akan memaparkan “Selamat Datang ke Forum
Pengguna”.Dengan itu konfigurasi Virtual Host telah berjaya dilakukan.
d. Apabila Virtual Host digunakan, maka Document Root /var/www/html/ tidak lagi boleh
dicapai dengan menggunakan IP Address server seperti http://10.23.52.235 kerana ia
akan terus redirect ke Virtual Host pertama di dalam fail konfigurasi httpd.conf iaitu
www.edaftar.com di mana direktorinya adalah /var/www/html/edaftar/.
b. Antara konfigurasi PHP yang sering dilakukan oleh pentadbir sistem adalah seperti
berikut:
Parameter Penerangan
max_execution_time = 30 Masa maksimum yang diambil untuk execute script
(dalam saat). Sekiranya script PHP yang digunakan
terlalu kompleks dan memerlukan masa yang panjang
untuk diproses, masa max_execution_time boleh
dilanjutkan lagi bergantung kepada keperluan.
56
display_errors = Off Enable atau disabled paparan ralat/amaran sekiranya
terdapat kesalahan syntax atau function dalam script
PHP.
display_startup_errors = Off Sama seperti display_errors tetapi ralat/amaran yang
dipaparkan adalah error pada permulaan pemprosesan
page seperti kehilangan library function PHP.
c. Berikut merupakan contoh penggunaan display_errors. Buka fail /etc/php.ini dan tukar:
display_errors = On
<?php
$file=fopen("welcome.txt","r");
echo(“Ini adalah test script”);
?>
57
Anda akan dapati ia akan mengeluarkan Warning mesej seperti berikut:
b. Buka fail /etc/php.ini dan tukar semula display_errors = On. Cipta satu XML iaitu
/var/www/html/edaftar/note.xml dan masukkan kod berikut:
58
Simpan fail dan cipta satu PHP fail iaitu /var/www/html/edaftar/viewxmldom.php dan
masukkan kod berikut:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();
?>
Error berikut adalah disebabkan komponen library sokongan XML-DOM belum diinstall
lagi ke dalam server. Untuk membuat installation komponen tersebut, jalankan arahan
berikut:
Setelah selesai installation, restart service Apache dan refresh semula site
http://www.edaftar.com/viewxmldom.php. Didapati error mesej sebelum ini sudah
tiada dan output page dapat dipaparkan dengan betul.
d. Buka terminal untuk server yang diinstall menggunakan tarball dan masuk ke direktori
/usr/local/apache/htdocs/. Cipta satu fail bernama testgd.php dan masukkan kod
berikut:
<?php
$img = imagecreate(250,80);
59
$corners = array(
0 => 190,
1 => 60,
2 => 210,
3 => 20,
4 => 230,
5 => 60,
);
Simpan fail dan buka Internet Explorer dan akses fail tersebut menggunakan IP Address
server tersebut contohnya http://10.23.52.80/testgd.php. Anda akan mendapati tiada
sebarang paparan malah mungkin terdapat error HTTP 500 Internal Server Error.Ini
disebabkan komponen PHP-Gd belum diinstall di server tersebut.
Perhatikan arahan berikut sama sewaktu hendak membuat pemasangan PHP namun
terdapat pertambahan parameter iaitu “--with-gd --with-jpeg-dir=/usr/lib --with-png-
dir=/usr/lib” di belakangnya. Kemudian jalankan arahan berikut untuk mula installation:
60
f. Setelah lebih kurang 10-15 minit masa installation, restart semula service Apache
dengan arahan berikut:
# /etc/rc.d/init.d/apache restart
Setelah tamat installation buka fail /etc/mail/sendmail.mc dan cari baris berikut:
61
Buang perkataan dnl di depan baris tersebut dan gantikan perkataan
“smtp.your.provider” dengan IP Address atau DNS Email Server yang terdapat di
organisasi anda, seperti contoh di Perbendaharaan adalah mye.treasury.gov.my:
define(`SMART_HOST', `mye.treasury.gov.my')dnl
Simpan fail dan jalankan arahan berikut dan restart service Sendmail:
# make -C /etc/mail
# service sendmail restart
Untuk membuat ujian penghantaran email menggunakan Sendmail, ikut arahan berikut:
d. Sekiranya tiada masalah dan pentadbir email sudah meluluskan IP Address server yang
digunakan untuk menghantar email, anda akan mendapat email testing yang baru
dihantar tersebut. Untuk menguji samada PHP boleh melakukan penghantaran email,
cipta fail /var/www/html/edaftar/testmail.php dan masukkan kod berikut:
<?php
// Gantikan dengan email anda
$to="msaffuan.suntong@treasury.gov.my";
// Email subject
$subject="Test";
// Daripada
$header="Server Setup Training";
62
e. Simpan fail dan buka fail Internet Explorer, masukkan URL
http://www.edaftar.com/testmail.php. Semak Inbox Email anda, sekiranya terdapat test
email tersebut maka penghantaran email melalui PHP berjaya dilakukan.
6. Membuat konfigurasi pada setting MySQL dan membuat konfigurasi user privileges pada
pangkalan data MySQL menggunakan PhpMyAdmin.
a. Database MySQL juga boleh dikonfigurasi seperti port no., socket path, buffer size dan
lain-lain. Fail konfigurasi bagi database MySQL terletak di /etc/my.cnf. Bagi database
MySQL yang dibangunkan menggunakan Yum Install atau RPM Install, konfigurasi telah
dibuat secara automatik dan jika dilihat dalam fail /etc/my.cnf, tidak banyak parameter
yang dipaparkan kerana parameter yang tiada disitu akan mengambil value default yang
diberikan oleh server.
b. Untuk melihat parameter konfigurasi yang lebih banyak, buka fail /etc/my.cnf di server
yang dibangun menggunakan Tarball. Berikut adalah beberapa parameter yang perlu
diketahui dan kadangkala diubah.
Parameter Penerangan
[mysqld] Port No. default yang digunakan untuk server MySQL
port = 3306 menghoskan servicenya.
socket = /tmp/mysql.sock Path bagi socket MySQL yang digunakan oleh
program/aplikasi lain untuk connect ke database MySQL.
skip-networking Dengan function ini, database MySQL hanya boleh
diakses dari aplikasi yang dihoskan pada local IP Address.
Sekiranya database MySQL ini dihos berasingan dengan
server aplikasi, maka database ini perlu dibuka ke
network agar server aplikasi dapat mengakses database
tersebut. Untuk membolehkan capaian terus ke
database daripada tempat lain, comment baris tersebut:
# skip-networking
datadir=/var/lib/mysql Path di mana fail database disimpan.
Setiap perubahan yang dibuat dalam fail my.cnf memerlukan pentadbir pangkalan data
mengrestart service MySQL agar perubahan dapat dikuatkuasakan.
c. Untuk membuat konfigurasi user priveleges pada database MySQL, kita akan
menggunakan tools yang telah diinstall sebelum ini iaitu PhpMyAdmin. Tetapi sebelum
itu Apache perlu dilakukan sedikit dikonfigurasi agar PhpMyAdmin boleh dibuka
daripada komputer lain selain dari server itu sendiri.
63
d. Buka terminal di server yang diinstall menggunakan Yum Install dan buka fail
/etc/httpd/conf.d/phpMyAdmin.conf. Cari bahagian berikut:
<Directory /usr/share/phpMyAdmin/>
order deny,allow
deny from all
allow from 127.0.0.1
allow from ::1
</Directory>
<Directory /usr/share/phpMyAdmin/>
order deny,allow
allow from all
</Directory>
Restart service Apache dengan # service httpd restart. Kemudian buka Internet Explorer
di komputer anda dan buka URL http://www.edaftar.com/phpmyadmin.Akan tetapi
kemungkinan berlaku masalah login sekiranya menggunakan Internet Explorer, maka
buka URL tersebut menggunakan Mozilla Firefox.Login menggunakan user root dan
katalaluan yang telah disetkan sebelum ini.
e. Setelah login ke PhpMyAdmin, cipta dahulu sebuah database baru bernama aplikasidb.
64
f. Cipta table baru bernama maklumatstaffdan Number of Field = 5. Kemudian masukkan
butiran berikut untuk structure bagi setiap field dan kemudian Simpan:
g. Masukkan sedikit data ke dalam table maklumat staff seperti contoh di bawah
menggunakan tab Insert. Setelah data selesai dimasukkan, tekan butang Go.
h. Untuk browse data-data yang terdapat dalam table maklumatstaff, tekan pada tab
Browse.
65
i. Sekarang kita akan buat satu user database MySQL baru dan setkan privileges bagi user
tersebut ke database aplikasidb. Tekan icon Home di atas sebelah kiri dan tekan tab
Privileges. Kemudian tekan link “Add a new User” di bawah page tersebut. Masukkan
maklumat user tersebut seperti contoh dan tekan butang Go bila sudah selesai:
j. Pergi ke bahagian Database-specific privileges dan pada pilihan “Add privileges on the
following database:”, pilih database yang hendak diberi privileges kepada sysadmin iaitu
aplikasidb. Kemudian edit privileges bagi user sysadmin bagi database aplikasidb
mengikut kesesuaian, seperti contoh berikut semua kotak ditandakan kecuali pada
bahagian Administration kerana privileges tersebut lebih menjurus kepada tugas
Pentadbir Pangkalan Data atau DBA Admin. Setelah selesai menanda privileges, tekan
butang Go.
k. Tekan semula tab Privileges dan akan didapati user sysadmin tersenarai di senarai
tersebut. Tekan icon Action – Edit Privileges bagi user sysadmin. Pada page Edit
Privileges, scroll ke bawah pada bahagian “Change Login Information / Copy User”. Pada
combo box Host, pilih Local dan tekan butang Go. Selepas itu scroll ke bahagian yang
sama sekali lagi dan pada combo box Host, kali ini pilih “Use text field:” dan masukkan
“127.0.0.1” pada text box di sebelahnya dan tekan Go.
66
l. Tekan semula tab Privileges dan akan didapati terdapat 3 baris bagi pengguna sysadmin,
sama seperti user root. Sekarang keluar dan logout daripada aplikasi PhpMyAdmin.
m. Pada login page PhpMyAdmin, login sebagai user sysadmin yang baru dicipta tadi dan
masukkan katalaluan.
67
n. Setelah login masuk sebagai user sysadmin, didapati database yang boleh dilihat hanya
aplikasidb dan information_schema. Ini kerana database aplikasidb telah diberi
privileges kepada user sysadmin manakala table information_schema hanya merupakan
database informasi mengenai MySQL. User sysadmin ini juga tidak boleh mencipta
database baru dan mempunyai function Database Administration yang terhad.
b. Jalankan arahan berikut untuk membuat installation NTP. Kemungkinan package berikut
telah diinstall di server tetapi sekiranya tiada lagi maka package NTP akan diinstall.
68
# yum install ntp
c. Semak masa dan tarikh semasa server dengan menjalankan arahan berikut:
# date
Mon Nov 15 15:37:54 MYT 2010
d. Kemudian jalankan arahan berikut untuk mengupdate tarikh dan masa daripada NTP
Server sedia ada, contohnya 10.23.59.55.
# ntpdate 10.23.59.55
15 Nov 15:37:10 ntpdate[7194]: adjust time server 10.23.59.55 offset 0.016233 sec
e. Semak masa dan tarikh semasa server semula dengan arahan # date untuk melihat sama
ada masa dan tarikh telah berubah mengikut waktu server. Bagi memastikan masa
server sentiasa sycnchronize dengan masa NTP Server, masukkan arahan berikut ke
dalam fail /etc/crontab dan jadualkan untuk menjalankan arahan tersebut setiap hari
seperti contoh pada pukul 12:01 malam setiap hari:
69
MODUL 6: PENGUJIAN WEB SERVER
<html>
<head>
<title>This is HTML Test Page</title>
</head>
<body bgcolor="white" text="blue">
<h2>Hello World!</h2>
<b>Selamat datang ke Kursus Server Setup (Perisian OSS)...</b>
<hr>
<p>Pengujian HTML Berjaya dilaksanakan!</p>
<img src="http://www.rangsanganekonomi.treasury.gov.my/images/M_images/1malaysia.png">
</body>
</html>
70
2. Keupayaan memproses kod PHP
a. Kali ini kita akan membuat menguji samada server yang dibangunkan boleh memproses
kod asas PHP. Cipta fail di /var/www/html/edaftar/testphp.php dan masukkan kod
berikut:
<html>
<head>
<title>This is PHP Test Page</title>
</head>
<body>
<?php
echo("<h2>Pengujian Kod PHP</h2>");
echo("<b>Kalendar PHP</b>");
//Here we find out what day of the week the first day of the month falls on $day_of_week = date('D', $first_day) ;
//Once we know what day of the week it falls on, we know how many blank days occure before it. If the first day of the
week is a Sunday then it would be zero
switch($day_of_week){
case "Sun": $blank = 0; break;
case "Mon": $blank = 1; break;
case "Tue": $blank = 2; break;
case "Wed": $blank = 3; break;
case "Thu": $blank = 4; break;
case "Fri": $blank = 5; break;
case "Sat": $blank = 6; break;
}
//We then determine how many days are in the current month
$days_in_month = cal_days_in_month(0, $month, $year) ;
echo "<tr>";
//first we take care of those blank days
while ( $blank > 0 )
{
echo "<td></td>";
$blank = $blank-1;
$day_count++;
}
71
//sets the first day of the month to 1
$day_num = 1;
//count up the days, untill we've done all of them in the month
//sets the first day of the month to 1
$day_num = 1;
//count up the days, untill we've done all of them in the month
while ( $day_num <= $days_in_month )
{
echo "<td> $day_num </td>";
$day_num++;
$day_count++;
//Finaly we finish out the table with some blank details if needed
while ( $day_count >1 && $day_count <=7 )
{
echo "<td> </td>";
$day_count++;
}
echo "</tr></table>";
?>
</body></html>
72
3. Keupayaan memproses capaian di antara PHP dan pangkalan data MySQL
a. PHP membolehkan integrasi dengan database MySQL, di mana ia boleh digunakan untuk
memapar data, memasukkan data, mengemaskini data dan memadam data di database
MySQL. Kita akan cuba membuat pengujian untuk memproses capaian ke MySQL
menggunakan kod PHP. Cipta fail di /var/www/html/edaftar/testphpmysql.php dan
masukkan kod berikut:
<?php
// Database configuration
$dbhost = 'localhost';
$dbname = 'aplikasidb';
$dbuser = 'root';
$dbpasswd = 'zaq12wsx'; // Gantikan dengan katalaluan database user root anda
$conn = @mysql_connect("$dbhost","$dbuser","$dbpasswd")
or die("Err:Conn");
$rs = @mysql_select_db("$dbname",$conn)
or die("Err:D");
?>
<html>
<head>
<title>This is PHP/MySQL Test Page</title>
</head>
<body>
<h2>Pengujian Integrasi PHP dan MySQL</h2>
<p>Paparan data Database <b>aplikasidb</b> - Table <b>maklumatstaff</b></p>
<table border="1">
<tr>
<td><b>Staff ID</b></td>
<td><b>Nama Staff</b></td>
<td><b>Bahagian</b></td>
<td><b>Jantina</b></td>
<td><b>Tarikh Lahir</b></td>
</tr>
<?php
$sql = "SELECT * FROM maklumatstaff";
$rs = mysql_query($sql,$conn);
while($row = mysql_fetch_array($rs))
{
$staffid = trim($row['staffid']);
$namastaff = trim($row['namastaff']);
$bahagian = trim($row['bahagian']);
$jantina = trim($row['jantina']);
$tarikhlahir = trim($row['tarikhlahir']);
?>
<tr>
<td><?php echo($staffid); ?></td>
<td><?php echo($namastaff); ?></td>
<td><?php echo($bahagian); ?></td>
<td><?php echo($jantina); ?></td>
<td><?php echo($tarikhlahir); ?></td>
</tr>
<?php
}
?>
</table></body></html>
73
b. Buka Internet Explorer dan masukkan URL http://www.edaftar.com/testphpmysql.php.
Sekiranya page seperti berikut dipaparkan maka pengujian integrasi PHP dan MySQL
berjaya.
b. Sebelum itu pergi ke direktori /var/www/html dan cipta satu direktori baru iaitu joomla.
Masuk ke direktori /var/www/html/joomla tersebut dan jalankan arahan berikut untuk
download fail package Joomla:
# wget http://joomlacode.org/gf/download/frsrelease/13105/57239/Joomla_1.5.22-Stable-
Full_Package.tar.gz
74
<VirtualHost *:80>
ServerName joomla.abc.com
DocumentRoot /var/www/html/joomla
</VirtualHost>
Simpan fail dan restart service Apache dengan arahan # service httpd restart.
10.23.52.235 joomla.abc.com
75
Pergi semula ke Joomla installation dan tekan butang Check Again dan parameter
configuration.php writeable telah menjadi Yes. Tekan Next.
h. Pada bahagian License, tekan Next. Pada bahagian Database Configuration, masukkan
maklumat seperti berikut dan setelah selesai tekan Next:
76
i. Pada bahagian FTP Configuration tekan Next. Pada bahagian Main Configuration
masukkan maklumat seperti berikut:
TEKAN
Tekan Next setelah selesai. Setelah itu bahagian Finish akan dipaparkan dan sedikit
makluman akan diberikan. Guna Terminal dan masuk ke direktori
/var/www/html/joomla dan jalankan arahan berikut untuk memadam direktori
Installation sebagaimana yang dimaklumkan di bahagian Finish itu tadi:
# rm -Rf installation
j. Setelah itu pergi semula ke page Joomla Installation dan tekan butang Site untuk masuk
ke main site Joomla. Sekiranya page seperti berikut dipaparkan maka pengujian untuk
menyemak web server yang dibangunkan menyokong perisian Joomla berjaya.
77
5. Menguji masa capaian laman web menggunakan Apache Benchmark tools
a. Apache Benchmark atau Apachebench merupakan tools yang boleh digunakan untuk
menguji masa capaian sesuatu laman web dan mengetahui sejauh mana prestasi web
server yang dibangunkan.Ia juga boleh mengsimulasi seberapa banyak capaian
dilakukan serentak bagi menggambarkan keadaan sebenar.
b. Sebelum itu pada server yang dibangun menggunakan RPM Install, tambah baris berikut
pada fail /etc/hosts:
Kemudian jalankan contoh arahan Apachebench berikut bagi melihat masa capaian ke
laman web www.edaftar.com:
# ab -n 10 -c 2 http://www.edaftar.com/
Penerangan parameter:
-n = Bilangan request berturutan yang akan dihantar oleh Apachebench ke laman web
www.edaftar.com, contohnya 10 request.
-c = Bilangan concurrent request yang dihantar bagi setiap request n, dalam contoh ini
terdapat 2 concurrent request bagi setiap 10 request. Oleh itu jumlah keseluruhan
request yang dihantar ke laman web tersebut adalah 20.
78
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Document Path: /
Document Length: 43 bytes
Concurrency Level: 2
Time taken for tests: 0.16652 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 2340 bytes
HTML transferred: 430 bytes
Requests per second: 600.53 [#/sec] (mean)
Time per request: 3.330 [ms] (mean)
Time per request: 1.665 [ms] (mean, across all concurrent requests)
Transfer rate: 120.11 [Kbytes/sec] received
79
keputusan, kita boleh mengetahui web server dan versi yang digunakan serta port no.
yang digunakan.
# ab -n 1000 -c 20 http://www.edaftar.com/
…
Time per request: 10.520 [ms] (mean)
…
Daripada ujian tersebut, didapati masa capaian purata bagi 1000 request dan 20
concurrent request adalah 10.52 milisaat.
Kita juga boleh membuat ujian pada laman web lain seperti www.google.com,
www.tm.net.my untuk mengetahui prestasi laman web tersebut.
80
Simpan fail tersebut dan copy fail /etc/awstats/awstats.model.conf ke fail
/etc/awstats/awstats.[nama domain URL].conf, seperti contoh
/etc/awstats/awstats.www.edaftar.com.conf. Cari baris yang mengandungi perkataan
berikut:
SiteDomain="localhost.localdomain"
Sekiranya domain URL tersebut mempunyai server aliases seperti yang telah ditetapkan
di Virtual Hosts Apache, gantikan dengan aliases tersebut seperti:
HostAliases="edaftar.com"
Sekiranya tiada, baris tersebut boleh dikomenkan sahaja. Simpan fail tersebut.
b. Statistik Awstats perlu dikemaskini setiap masa bagi menjana graf dan laporan statistik.
Secara default ia dikemaskini setiap 1 jam sekali dengan menggunakan cronjob. Untuk
mengemaskini statistik AwStats gunakan arahan berikut:
# /usr/share/awstats/tools/awstats_updateall.pl now-configdir="/etc/awstats"-
awstatsprog="/usr/share/awstats/wwwroot/cgi-bin/awstats.pl"
Kemudian buka Internet Explorer dan masukkan URL berikut untuk melihat statistik dan
laporan capaian bagi laman web www.edaftar.com:
http://www.edaftar.com/awstats/awstats.pl?config=www.edaftar.com
81
Sekiranya laman web seperti berikut tertera bermakna installation Awstats telah
berjaya.
d. Dengan menggunakan Awstats, pelbagai statistik boleh dilihat seperti Masa Capaian
mengikut harian, mingguan dan bulanan, pelawat berasal daripada Negara mana,
tempoh lawatan, Sistem Operasi yang digunakan pelawat, pelayar Internet yang
digunakan pelawat dan lain-lain.
b. Bagi menggunakan Nmap, install dahulu package tersebut dengan arahan berikut:
82
Setelah installation tamat, cuba jalankan arahan berikut:
# nmap localhost
Berdasarkan result tersebut dapat diketahui port dan service mana yang telah dibuka
kepada rangkaian untuk membuat capaian ke server tersebut seperti port 22 (ssh), 25
(smtp), 80 (http), 3306 (mysql) dan sebagainya. Perhatikan apabila membuat Nmap
pada localhost, ia akan menunjukkan semua port yang dibuka untuk localhost itu sendiri
tetapi tidak semestinya ia dibuka kepada luar. Cuba jalankan arahan Nmap tetapi
menggunakan IP server tersebut:
# nmap 10.23.52.235
Daripada ujian tersebut didapati 2 port yang jika discan menggunakan localhost tiada
iaitu port 25 dan 734.Ia berkemungkinan ditutup oleh Firewall atau konfigurasi service
itu sendiri.
83
c. Terdapat pelbagai kegunaan Nmap yang biasa digunakan oleh Pentadbir Sistem dan
Rangkaian, antaranya adalah untuk membuat IP Range scanning untuk menyemak hos
yang aktif dalam sesuatu IP Range. Berikut adalah contoh arahan untuk scan IP Range di
antara 10.23.59.1 hingga 10.23.59.255.
Output daripada arahan tersebut akan dipaparkan IP Address bagi hos yang aktif serta
MAC Addressnya seperti contoh:
d. Untuk mengetahui lebih mendalam mengenai hos yang discan seperti port yang dibuka
dan version service yang dibuka, guna arahan berikut:
e. Daripada hasil keputusan IP scan tersebut, didapati port 111 dan 734 dibuka. Kita akan
cuba tutup port tersebut daripada diakses daripada rangkaian dengan menggunakan
IPTables. Masukkan arahan seperti berikut di fail /etc/sysconfig/iptables dan masukkan
baris berikut di bawah baris:
-A FORWARD -j RH-Firewall-1-INPUT
84
Simpan fail tersebut dan restart service IPTables. Sekarang jalankan semula arahan
berikut dan didapati STATE bagi port 111 dan 734 telah berubah daripada open ke
filtered.
f. Terdapat pelbagai lagi cara menggunakan Nmap, untuk maklumat lanjut boleh merujuk
di laman web http://nmap.org/bennieston-tutorial/.
85
SEKIAN, TERIMA KASIH
86