CLICK HERE FOR BLOGGER TEMPLATES AND MYSPACE LAYOUTS »

. . .

Rabu, 25 Februari 2009

MEMBUAT WEB SERVER dengan FREE BSD

1. DownloadAplikasi yang dipergunakan dalam artikel ini adalah 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.Apache versi terakhir dapat didownload di http://apache.the.net.id/httpd/httpd-2.2.3.tar.bz2

Versi terakhir Apache saat artikel ini ditulis adalah versi 2.2.3. Dan versi PHP terakhir saat ini adalah versi 5.2.0. PHP dapat didownload di http://id2.php.net/get/php-5.2.0.tar.bz2/from/a/mirror.2. Instalasi2.1. Install MySQLSebelum 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-serverCommand 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.cnfKemudian jalankan command berikut untuk mengaktifkan daemon MySQL.$ sudo /usr/local/etc/rc.d/mysql-server startBila berhasil, seharusnya Anda 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/mysql701 p0- S 383:04.45 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf –basedir=/usr/local –datadir=/var/db/mysqlSelanjutnya 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 -pEnter password:Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 603704 to server version: 5.0.22Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.mysql> qBye2.2. Install OpenSSLLangkah selanjutnya adalah menginstalasi OpenSSL, cara menginstalasi OpenSSL dalam hal ini menggunakan ports juga.$ cd /usr/ports/security/openssl$ sudo make install cleanBuat 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 1024Ubah permission untuk direktori private menjadi:$ sudo chown -R root:wheel private$ sudo chmod -R 600 private$ sudo chmod u+X privateGenerate Certificate Signing Request (CSR) File:$ /usr/local/bin/openssl req -new -key private/namadomain.com.key -out certs/namadomain.com.csrCountry Name (2 letter code) [GB]: IDState or Province Name (full name) [Some-State]: PropinsiLocality Name (eg, city) []: KotaOrganization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Nama UsahaOrganizational Unit Name (eg, section) []: Bidang Usaha PerusahaanCommon Name (eg, your name or your server’s hostname) []: namadomain.comEmail Address []: postmaster@namadomain.comAlamat e-mail ini dilindungi dari spambot, anda harus memampukan JavaScript untuk melihatnyaPlease enter the following ‘extra’ attributesto be sent with your certificate requestA challenge password []: masukkanpasswordAn 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.keyCertificate yang dibuat itu nantinya akan digunakan bila webserver support SSL.2.3. Install ApacheSaya asumsikan, source Apache hasil download Anda 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 installKeterangan 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 PHPSebelum Anda menginstalasi PHP, saya sarankan untuk menginstall 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)Saya asumsikan pula, source PHP yang Anda download 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 installKeterangan 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 User wwwGroup wwwServerAdmin hostmaster@namadomain.comAlamat e-mail ini dilindungi dari spambot, anda harus memampukan JavaScript untuk melihatnyaServerName www.namadomain.com:80DirectoryIndex index.html index.phpTypesConfig conf/mime.typesAddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddType application/x-httpd-php .phpAddHandler cgi-script .cgiAktifkan juga baris-baris berikut dengan menghilangkan tanda # di awal barisnya:Include conf/extra/httpd-autoindex.confInclude conf/extra/httpd-userdir.confInclude conf/extra/httpd-vhosts.confInclude conf/extra/httpd-dav.confInclude conf/extra/httpd-default.confInclude conf/extra/httpd-ssl.confSelanjutnya ubah permission direktori Apache:$ cd /usr/localUbah kepemilikan direktori apache2 ke user root:wheel$ sudo chown -R root:wheel apache2Ubah 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 apache2Selanjutnya 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 apache2Ubah kepemilikan direktori binary Apache ke user root:$ sudo chmod -R u+x binDirektori 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-binWeb 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 iconsUbah juga permission direktori logs:$ sudo chgrp -R www logs$ sudo chmod g+wX logsTerakhir 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 htdocsKarena 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. Startup script dapat didownload di sini: Apache-2 FreeBSD Startup ScriptKemudian 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.shJalankan file tersebut untuk mengaktifkan daemon httpd:$ sudo /usr/local/etc/rc.d/apache.sh startPeriksa apakah daemon httpd sudah aktif dengan command ps ax:$ ps ax grep httpd33549 ?? Ss 0:12.88 /usr/local/apache2/bin/httpd -DSSL33550 ?? I 0:00.43 /usr/local/apache2/bin/httpd -DSSL33551 ?? I 0:00.40 /usr/local/apache2/bin/httpd -DSSL33552 ?? I 0:00.32 /usr/local/apache2/bin/httpd -DSSLBila output di console Anda sudah seperti di atas, selamat! Anda sudah berhasil menginstall web server pada server Anda.

0 komentar: