You are on page 1of 9

Membangun Web Server

3 05 2010

1 Votes
i

Internet sudah menjadi bagian dari kehidupan manusia saat ini. Internet merupakan sumber data dan
informasi yang sangat lengkap. Internet dapat juga digunakan sebagai media promosi yang lebih
murah. Oleh karena otu, insatnsi yang ingin lebih dikenal oleh masyarakat harus menggunakan fasilitas
ini. Untuk mewujudkan hal tersebut maka dibutuhkan sebuah perangkat yang disebut sebagai Web
Server.
Sebagai harware, Web Server merupakan sebuah komputer yang didesain khusus sebagai sebuah server
oleh perusahaan komputer misalnya HP, DELL, IBM, Cisco,Acer, dan perusahaan besar lainnya
ataupun sebuah komputer biasa yang diset sebagai sebiah server. Untuk menjadi sebuah web server,
maka komputer tersebut harus diinstal dengan sistem operasi dan juga software aplikasi yang
mendukung pembangunan web server tersebut. Adapun salah satu sistem operasi yang dapat kita
gunakan untuk membangun file server adalah Free BSD sedangkan program aplikasi yang dapat
digunakan untk membangun web server adalah Apache. Selain itu diperlukan juga software database
MySQL sebagai pengeloalaan datanya. Dalam membangun sebuah web server harus juga dibangun
layanan-layanan pendukungnya. Layanan – layanan pendukung ini sebenarnya merupakan sebuah
aplikasi server juga, hanya saja letaknya secara fisik menjadi satu denagn web server. Layanan –
layanan tersebut adalah
ü FTP ( File Transfer Protokol )
File Transfer Protokol adalah suatu protokol yang digunakan untuk transfer data secara remote.
Layanan ini sangat berguna dan banyak sekali di gunakan di internet selain E-mail, Telnet, dan SSH.
Kegunaan utama layanan ini pada web server adalah untuk mengupdate halaman web yang ada di web
server tersebut, karena pengupdate-an ini biasanya dilakukan oleh komputer lain. FTP menggunakan
dua port untuk bekerja, port 20 untuk mengirim data yang dibutuhkan, sedangkan port 21 untuk
perintah kontrol dan status informasi. FTB secara default sudah terinstal pada Free BSD sehingga tidak
perlu diinstal aplikasi lain.
ü SSH ( Secure Shell )
SSH merupakan protokol login yang text mode. Artinya administrator dapat login dan bekerja dengan
servernya tanpa harus berada di depan servernya. Hal ini disebut dengan remote login atau remote
administration. SSH disebut secure karena menggunakan enkripsi untuk semua data yang dikirim
maupun diterima ketika terhubung dengan server sehingga dapat melindungi password dan data penting
lainnya dari penyadapan jaringan sehigga SSH banyak digunakan sebagai remote administration jika
administrator tidak berada di depan server. SSH menggunakan port 22. SSH biasanya sudah terinstal
pada FreeBSD sehingga kita tidak perlu menginstal aplikasi lain.
ü PHP interpreter
PHP merupakan singkatan dari Personal Home Page tools. PHP merupakan suatu script yang bersifat
server-side yang ditambahkan ke dalam file HTML. Script ini akan membuat suatu aplikasi dapat
diintegrasikan ke dalam HTML sehingga membuat halaman web menjadi dinamis dan interaktif.
Server-side artinya pengerjaan script yang dilakukan di server kemudian hasilnya dikirimkan ke
browser. Karena itulah suatu web server harus memiliki dan mendukung PHP. Keuntungan dari server-
side adalah sebagai berikut.
· Tidak harus menggunakan browser tertentu karena server yang akan mengerjakan script PHP tersebut.
Hasil yang dikirimkan umumnya berupa teks atau gambar yang dapat dikenali oleh browser apapun.
· Dapat memanfaatkan aplikasi lain yang dimiliki server, misalnya koneksi ke database.
· Script dapat dilihat tetapi tidak dapat diketahui secara jelas menggunakan fasilitas view source yang
ada di browser sehingga ada proteksi keamanan disana.
ü Database
Suatu halaman web yang interaktif akan memberikan kesempatan kepada user untuk mengisikan data,
misalnya halaman web buku tamu. Data – data yang sudah diisikan oleh user akan disimpan oleh web
server dengan memanfaatkan software database. Oleh karena itu dalam membangun web server harus
disertai database server sebagai pendukungnya. Salah sati software yang banyak digunakan sebagai
database adalah MySQL. MySQL cepat berkembang karena mendudung pemrograman denagn bahasa
SQL yang mudah dan powerfull ddan juga open source sehingga lebih murah.
ü
Web Server
Halaman – halaman web yang diakses melaui web browser seperti Internet Explorer dan Mozilla
Firefox sebenarnya terletak pada suatu server yang disebut dengan Web Server. Dengan perkataan lain
Web Server adalah server yang menyimpan halaman – halaman web dari sebuah instansi atau
perusahaan tertentu yang dapat diakses dengan menggunakan web browser. Web server ini diciptakan
oleh suatu aplikasi salah satunya adalah Apache. Apache banyak digunakan dan berkembang dengan
cepat karena mendukung bahasa scripting seperti PERL dan PHP dan juga merupakan produk open
source yag berharga murah. Apache bekerja dengan menggunakan Hyper Text Transfer Protikol,
sehingga Apache sering disebut dengan HTTPD yang berarti daemon http. Protokol ini bekerja pada
port 80, 81, dan 8080. Port defaultt dari Apache adalah port 80. Web server dapat diukur kinerjanya
walaupun ukuran kinerjanya tidak benar – benar tepat, tetapi suudah mewakili. Ukuran kinerja dari
sebuah web server adalah sebagai berikut.
ü Banyaknya user yang dapat dilayani dala satu waktu.
ü Kahandalan dan kestabilan dalam melayani user.
ü Banyaknya proses yang dapat diciptakan dan diselesaikan dalam satu waktu.
Hal – hal yang diperlukan dalam mmembangun web server
Berdasarkan apa yang telah disampaikan pada penyampian di atas, kita dapat memahami apa saja yang
diperlikan dalam membangun web server sebagai penyimpan halaman web dari suatu instansi sehingga
nantinya dapat diakses oleh orang lain dengan menggunakan browser. Hal yang diperlukan untuk
membangun web server adalah pemenuhan akan kebutuhan perangkat keras atau software dan
perangkat lunak yang digunakan dalam membangun server.
· Kebutuhan perangkat keras yaitu kebutuhan alat atau harware yang diperlukan dalam membangun
sebuah server. Perangkat yang diperlukan meliputi alat komputer seperti prosesor yang handal dan
cepat, HDD 9 harddisk dengan kapasitas yang mencukupi misalnya beberapa ratus giga karena
menyimpan halaman web dan database, penggunaan memory yang besar, motherboard yang handdal
dan mempunyai daya tahan yang tinggi, kartu jaringan yang handal, dan peralatan lain yang diperlukan
untuk membangun server. Jadi kebutuhan perangkat keras untuk membangun web server berupa unit
server dengan spesifikasi yang cukup, dapat menggunakan server rakitan atau PC biasa yang
dimodifikasi sebagai router atau menggunakan server branded misalnya server dari perusahaan HP
( Hewlet Pacckard ), Compaq, IBM, Sun Microsystem, Acer, Fujitsu, Dell, dan Cisco.
· Kebutuhan perangkat lunak
Kebutuhan perangkat lunak berupa software yang diperlukan untuk membangun sebuah web server
baik itu perangkat lunak porogram aplikasi maupun perangkat lunak sistem operasi. Perangkat lunak
sistem operasi yang biasanya digunakan untuk membangun web server adalah Linux/Unix FreeBSD.
Sedangkan aplikasi yang digunakan untuk membangun web server adalah menggunakan Apache.selain
aplikasi web server, diperlukan juga software database untuk penyimpanan datanya misalnya data buku
tamu pada website. Software database yang dapat digunakan banyak sekali. Yang paling terkenal
adalah MySQL karena mendukung penggunaan script SQL yang mudah dan opensoursce. Selain
MySQL banyak lagi aplikasi database lainnya misalnya Microsoft SQL Server, dan Oracle database
dari Oracle.Inc.
· Hal lain yang diperlukan dalam membengun web server adalah adanya layanan – layanan pendukung
yang merupakan sebuah aplikasi server antara lain FTP ( File Transfer Protokol ),SSH ( Secure
Shell ),PHP ( Personal Home Page) Interpreter, dan Database.
Pengujian Web Server
Pengujian web server dilakukan apabila web server telah berisi content web beserta data – data
pendukungnya. Pengujian ini menggunakan suatu aplikasi yang dijalankan dari sisi client. Software
yang dimaksud adalah Webstress dari Paessler Software Solution bagi client yang berbasis Windows
dan aplikasi Httperf yang dibuat oleh David Mosberger dari Hewlet Pacckard untuk client berbasis
Linux. Metode ini menguji web server tersebut dengan simulasi banyaknya user yang terhubung dan
dilayani. Kemudian dihitung pula banyaknya kesalahan layanan serta kecepatan layanan dalam satuan
detik.
Membangun web server dengan Linux/Unix FreeBSD
Adapun cara membuat web server pada FreeBSD dapat disampikan sebagai berikut.
1. Download Aplikasi yang digunakan membangun web server yaitu Apache versi 2.2.3, MySQL versi
5.0.22, OpenSSL versi 0.9.8d, dan PHP versi 5.2.0. Dari semua aplikasi di atas, hanya Apache dan PHP
yang akan diinstall secara manual, sedang MySQL dan OpenSSL diinstall via ports. Jadi yang akan
didownload secara manual hanya Apache dan PHP.
2. Instalasi software yang diperlukan
2.1. Install MySQL
Sebelum menginstall Apache dan PHP, yang harus diinstall terlebih dahulu adalah MySQL dan
OpenSSL. Untuk menginstalasi kedua aplikasi ini di FreeBSD cukup mudah melalui ports.
$ cd /usr/ports/database/mysql51-server
$ sudo make install
$ sudo portupgrade -rR mysql51-server
Command terakhir adalah untuk mengupgrade versi MySQL ke versi terbaru.
Untuk mengaktifkan MySQL saat booting, buka file /etc/rc.conf dan tambahkan baris:
mysql_enable = “YES”
Copykan file konfigurasi MySQL:
$ sudo cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf
$ sudo chgrp mysql /var/db/mysql/my.cnf
Kemudian jalankan command berikut untuk mengaktifkan daemon MySQL.
$ sudo /usr/local/etc/rc.d/mysql-server start
Bila berhasil, kita akan melihat baris berikut saat menjalankan command ps ax | grep mysql:
678 p0- I 0:00.01 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysql/my.cnf –
user=mysql –datadir=/var/db/mysql
701 p0- S 383:04.45 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf –
basedir=/usr/local –datadir=/var/db/mysql
Selanjutnya buat password untuk MySQL root user:
$ sudo mysqladmin -u root password ‘password-root-mysql’
Coba masuk ke MySQL console dengan password root tersebut.
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 603704 to server version: 5.0.22
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> \q
Bye
2.2. Install OpenSSL
Langkah selanjutnya adalah menginstalasi OpenSSL, cara menginstalasi OpenSSL dalam hal ini
menggunakan ports.
$ cd /usr/ports/security/openssl
$ sudo make install clean
Buat direktori untuk menempatkan certificate SSL:
$ sudo mkdir -p /usr/local/openssl/{certs,private}
Kemudian generate private key 1024-bit:
$ cd /usr/local/openssl
$ sudo /usr/local/bin/openssl genrsa -out private/namadomain.com.key 1024
Ubah permission untuk direktori private menjadi:
$ sudo chown -R root:wheel private
$ sudo chmod -R 600 private
$ sudo chmod u+X private
Generate Certificate Signing Request (CSR) File:
$ /usr/local/bin/openssl req -new -key private/namadomain.com.key -out certs/namadomain.com.csr
Country Name (2 letter code) [GB]: ID
State or Province Name (full name) [Some-State]: Propinsi
Locality Name (eg, city) []: Kota
Organization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Nama Usaha
Organizational Unit Name (eg, section) []: Bidang Usaha Perusahaan
Common Name (eg, your name or your server’s hostname) []: namadomain.com
Email Address []: postmaster@namadomain.comAlamat e-mail ini dilindungi dari spambot, anda harus
memampukan JavaScript untuk melihatnya
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: masukkanpassword
An optional company name []:
Kemudian buat Certificate Signed (CRT) file:
$ sudo /usr/local/bin/openssl x509 -req -days 365 -in certs/namadomain.com.csr -out
certs/namadomain.com.crt -signkey private/namadomain.com.key
Certificate yang dibuat itu nantinya akan digunakan bila webserver support SSL.
2.3. Install Apache
Kita asumsikan, source Apache hasil download disimpan di /home/users.
$ cd /home/users
$ tar -jxvf httpd-2.2.3.tar.bz2
$ cd httpd-2.2.3
$ ./configure \
–prefix=/usr/local/apache2 \
–enable-rewrite \
–enable-dav \
–enable-ssl \
–with-ssl=/usr/local \
–enable-vhost-alias \
–with-included-apr
$ make
$ sudo make install
Keterangan dari masing-masing opsi di atas adalah:
· prefix=[DIR]: Menginstall aplikasi ke target direktori yang ditentukan.
· enable-rewrite: Mengaktifkan rule based URL manipulation melalui module mod_rewrite.
· enable-dav: Mengaktifkan protocol WebDAV melalui module mod_dav. Dengan protocol WebDAV
ini memungkinkan membuat, memindah, menyalin, dan menghapus resource pada sebuah web server.
· enable-ssl: Mengaktifkan module SSL/TLS.
· with-ssl=[DIR]: Di mana library SSL/TLS diinstall.
· enable-vhost-alias: Support dengan banyak virtual host.
· with-included-apr: Install apr. APR atau Apache Portable Runtime pada Apache 2.2.x versi merupakan
source yang sudah menyatu dengan Apache Source.
2.4. Install PHP
Sebelum kita menginstalasi PHP, install aplikasi-aplikasi via ports yang diperlukan (recommended)
PHP saat instalasinya. Aplikasi-aplikasi tersebut adalah:
- mcrypt (/usr/ports/security/mcrypt) dan libmcrypt (/usr/ports/security/libmcrypt)
- db4 (/usr/ports/databases/db4) dan gdbm (/usr/ports/databases/gdbm)
- gd (/usr/ports/graphics/gd)
- libxml2 (/usr/ports/textproc/libxml2)
Kita asumsikan pula, source PHP yang didownload disimpan di /home/users.
$ cd /home/users
$ tar -jxvf php-5.2.0.tar.bz2
$ cd php-5.2.0
$ ./configure \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-mysql=/usr/local \
–with-openssl=/usr/local \
–with-config-file-path=/usr/local/apache2/conf \
–with-png-dir=/usr/local/lib \
–with-gettext=/usr/local/lib \
–with-gd \
–with-zlib \
–with-xml \
–with-mcrypt=/usr/local/lib \
–enable-mbstring=all \
–disable-short-tags
$ make
$ make install
Keterangan dari masing-masing opsi di atas adalah:
· with-apxs2[=FILE]: Menyertakan shared Apache 2.0 Handler module.
· with-mysql[=DIR]: Menyertakan dukungan MySQL. DIR adalah di mana binary MySQL diinstall.
· with-openssl[=DIR]: Menyertakan dukungan OpenSSL.
· with-config-file-path=PATH: Di mana file php.ini akan diletakkan.
· with-png-dir[=DIR]: Menyertakan dukungan format file PNG.
· with-gettext[=DIR]: Menyertakan dukungan GNU gettext.
· with-gd[=DIR]: Menyertakan dukungan GD.
· with-zlib[=DIR]: Menyertakan dukungan zlib.
· with-libxml-dir[=DIR]: Menyertakan dukungan XML.
· with-mcrypt[=DIR]: Menyertakan dukungan mcrypt atau Multi-cipher cryptographic library.
· enable-mbstring: Mengaktifkan dukungan multibyte string.
· disable-short-tags: Nonaktifkan penggunaan tag pendek <? pada script PHP.
Edit file /usr/local/apache2/conf/php.ini dan sesuaikan dengan kebutuhan. Pada dasarnya default file
konfigurasi ini sudah cukup baik.Karena PHP diinstall sebagai module pada Apache, kita perlu
mengubah kepemilikan direktori PHP yang hanya akan mengijinkan akses kepada user root dan www
saja.
$ sudo chown -R root:www /usr/local/lib/php
$ sudo chmod -R g-w,o-rwx /usr/local/lib/php
Edit file /usr/local/apache2/conf/httpd.conf dan ubah baris-baris berikut menjadi:
User www
Group www
ServerAdmin hostmaster@namadomain.com. Alamat e-mail ini dilindungi dari spambot, kita harus
memampukan JavaScript untuk melihatnya
ServerName www.namadomain.com:80
DirectoryIndex index.html index.php
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddHandler cgi-script .cgi
Aktifkan juga baris-baris berikut dengan menghilangkan tanda # di awal barisnya:
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-dav.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf
Selanjutnya ubah permission direktori Apache:
$ cd /usr/local
Ubah kepemilikan direktori apache2 ke user root:wheel
$ sudo chown -R root:wheel apache2
Ubah permission pada direktori apache2. Karena direktori ini kepemilikannya oleh root:wheel dan
supaya bisa diakses oleh group www, kita ijinkan group www ini membaca dan mengeksekusi file-file
di bawahnya.
$ sudo chmod 755 apache2
Selanjutnya pada direktori apache2 ini hanya akan mengijinkan user root saja untuk dapat membaca
dan menulisinya dengan mengubah permission menjadi:
$ sudo chmod -R 600 apache2/*
Hanya user root saja yang dapat mengakses seluruh direktori yang berada di bawah direktori apache2:
$ sudo chmod -R u+X apache2
$ cd apache2
Ubah kepemilikan direktori binary Apache ke user root:
$ sudo chmod -R u+x bin
Direktori cgi-bin juga berisi file-file binari. Hanya mengijinkan user root dan group www saja yang
bisa mengaksesnya.
$ sudo chgrp -R www cgi-bin
$ sudo chmod -R u+x,g+x cgi-bin
Web server akan membaca direktori icons, maka ubah pula kepemilikannya agar bisa dibaca oleh group
www.
$ sudo chgrp -R www icons
$ sudo chmod -R g+rX icons
Ubah juga permission direktori logs:
$ sudo chgrp -R www logs
$ sudo chmod g+wX logs
Terakhir ubah kepemilikan direktori htdocs agar bisa dibaca oleh publik. Direktori ini nanti merupakan
tempat menyimpan file-file web yang akan ditampilkan pada browser. Akses penulisan ke direktori ini
hanya dibatasi kepada user root saja.
$ sudo chgrp -R www htdocs
$ sudo chmod -R g+rX htdocs
Karena menginstall Apache dari source file. Kita harus membuat sendiri startup script-nya agar dapat
dieksekusi oleh server pada saat booting. Start up script diletakkan di direktori /usr/local/etc/rc.d.
Kemudian tambahkan dua baris berikut pada file /etc/rc.conf:
apache2_enable=”YES”
apache2_flags=”-DSSL”
Ubah permission file start up script menjadi:
$ sudo chmod 555 /usr/local/etc/rc.d/apache.sh
Jalankan file tersebut untuk mengaktifkan daemon httpd:
$ sudo /usr/local/etc/rc.d/apache.sh start
Periksa apakah daemon httpd sudah aktif dengan command ps ax:
$ ps ax | grep httpd
33549 ?? Ss 0:12.88 /usr/local/apache2/bin/httpd -DSSL
33550 ?? I 0:00.43 /usr/local/apache2/bin/httpd -DSSL
33551 ?? I 0:00.40 /usr/local/apache2/bin/httpd -DSSL
33552 ?? I 0:00.32 /usr/local/apache2/bin/httpd -DSSL
Bila output di console sudah seperti di atas, berarti kita sudah berhasil menginstall web server pada
server.
Kesimpulan
Dalam membangun sebuah web server pada intinya ada beberapa hal yang diperlukan. Yaitu perangkat
keras untuk membangun server, dan perangkat lunak untuk menjalankan fungsi web server yaitu sistem
operasi server dan aplikasi web server serta servise – service server lain yang diperlukan dalam
membangun web server sehingga web server dapat menjalankan tugasnya dengan baik sebagai
oenyimpan halaman dan content website dari suatu instansi perusahaan.

You might also like