Membangun Web Server

3 05 2010

 

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 http://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.


Aksi

Information




%d blogger menyukai ini: