PROMO SELL

Monday, March 07, 2005

Instalasi web server apache support php, ms-sql dan mysql

tulisan ini timbul karena banyak teman-teman saya para programer ingin menitipkan aplikasi berbasis web di server web server berbasis linx yang dikelola oleh saya. kebetulan pada saat itu sudah ada web server apache support php dan mysql. kendala timbul ketika saya tanyakan kepada teman-teman programer apa database yang diakses, kebanyakan dari mereka menggunakan ms-sql. Dari kebutuhan tersebut saya mencari referensi-refernsi yang dibutuhkan yang ternyata belum ada referensi yang berbahasa indonesia (mungkin saya yang tidak tau, hehehehe). untuk itu saya membuat tutorial ini untuk teman-teman yang memiliki kebutuhan yang sama.saya sangat mengharapkan sekali kritik, saran dan masukan pada tulisan ini sehingga nantinya terbentuk tutorial yang representatif.
Saran, koreksi, kritik, kesalahan ketik, maupun ucapan silakan dikirimkan ke email tersebut diatas. banyak sekali kekurangan pada tutorial ini. Terima Kasih.


saya tidak terbiasa berpanjang lebar dengan kata-kata, mari kita langsung saja memulai tahapan instalasi

1. Requirement
mysql-4.0.17.tar.gz
freetds-stable.tgz
httpd-2.0.47.tar.gz
php-4.2.3.tar.gz
download file-file tersebut di situs software yang bersangkutan. apabila tidak tahu silahkan surfing di universita google, dijamin ketemu :-).
untuk semua file-file yang telah di extrack saya terbiasa meletakkannya di directory /usr/local/src. silahkan sesuaikan dengan kebutuhan anda. file-file source saya letakkan di directory /home/bdul.


2. Instalasi Mysql (optional, kalo anda ingin install mysql di web server anda)

tidak ada alasan apapun saya menggunakan mysql versi 4.0.17, karena memang saya hanya memanfaatkan source yang sudah ada di pc saya, dan kebetulan hanya itu yang ada.

buat user dan group untuk mysql, kalau sudah ada perintah dibawah ini tidak perlu dilakukan.
root@gateway:/usr/local/srcl# groupadd mysql
root@gateway:/usr/local/srcl# useradd -g mysql mysql

lanjutkan dengan extrak dan intallasi mysql dengan perintah :
root@gateway:/usr/local/srcl# tar zxvf /home/bdul/mysql-4.0.17.tar.gz
root@gateway:/usr/local/srcl# cd mysql-4.0.17
root@gateway:/usr/local/srcl# ./configure --prefix=/usr/local/mysql
root@gateway:/usr/local/srcl# make
root@gateway:/usr/local/srcl# make install

kalo proses ini semua berjalan lancar maka akan terdapat directory /usr/local/mysql. dapat terlihat seperti dibawah ini :
root@gateway:/usr/local/src# ls /usr/local/mysql
bin include info lib libexec man mysql-test share sql-bench var

sampai tahapan ini berarti anda sudah sukses menginstall mysql. tapi jangan senang dulu karena masih ada tahapan lain untuk mengkonfigurasi mysql agar dapat berjalan dengan baik.

masuk ke directory /usr/local/mysql dengan perintah :
root@gateway:/usr/local/srcl#cd /usr/local/mysql

jalankan script untuk menginstall databases pendukung dengan perintah :
root@gateway:/usr/local/mysql# scripts/mysql_install_db

ganti kepemilikan directory mysql beserta directory anak-anaknya sebagai milik root
root@gateway:/usr/local/mysql# chown -R root /usr/local/mysql

ganti kepemilikan directory mysql/data beserta anak-anaknya sebagai milik root
root@gateway:/usr/local/mysql# chown -R mysql /usr/local/mysql/var

ganti kepemilikan group dari directory mysql beserta anak-anaknya sebagai milik mysql
root@gateway:/usr/local/mysql# chgrp -R mysql /usr/local/mysql

ganti kepemilikan directory mysql/bin beserta anak-anaknya sebagai milik root
root@gateway:/usr/local/mysql# chown -R root /usr/local/mysql/bin

apabila sudah semua selesai dilakukan struktur directory mysql dapat dilihat seperti ini:
root@gateway:/usr/local/src# ls /usr/local/mysql -l
total 7
drwxr-xr-x 2 root root 1480 Jun 10 14:35 bin
drwxr-xr-x 3 root mysql 72 Jun 10 14:35 include
drwxr-xr-x 2 root mysql 104 Jun 10 14:35 info
drwxr-xr-x 3 root mysql 72 Jun 10 14:35 lib
drwxr-xr-x 2 root mysql 72 Jun 10 14:35 libexec
drwxr-xr-x 3 root mysql 72 Jun 10 14:35 man
drwxr-xr-x 6 root mysql 232 Jun 10 14:35 mysql-test
drwxr-xr-x 3 root mysql 72 Jun 10 14:35 share
drwxr-xr-x 5 root mysql 888 Jun 10 14:35 sql-bench
drwx------ 4 mysql mysql 288 Jun 16 09:21 var

mari kita jalankan mysql sebagai daemon
root@gateway:/usr/local/mysql# bin/mysqld_safe --user=mysql &

cek apakah mysql sudah aktif pada pc kita dengan perintah :
root@gateway:/usr/local/mysql# ps aux | grep mysql
root 3231 0.0 0.8 2048 1016 tty1 S 09:21 0:00 /bin/sh bin/mysqld_safe
mysql 3248 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3250 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3251 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3252 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3253 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3254 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3255 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3256 0.0 9.9 46092 12428 tty1 S 09:21 0:16 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3257 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
mysql 3258 0.0 9.9 46092 12428 tty1 S 09:21 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/gateway.pid --skip-locking
root 3462 0.0 0.3 1472 492 pts/0 S 15:46 0:00 grep mysql


tahapan konfigurasi telah selesai dan database server mysql sudah siap untuk diakses :-)
untuk lebih amannya mari kita setting password root untuk mysql kita ubah dulu dengan perintah:
root@gateway:/usr/local/mysql# bin/mysqladmin -u root password 'terserah'

sekarang mari kita masuk ke database servernya :
root@gateway:/usr/local/mysql# bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.0.17

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

selesai deh intalasi mysql nya. ternyata panjang juga ya :-)


3. Instalasi Freetds

saya memakai versi terbaru dari freetds pada saat ini (12 juni 2004) yaitu versi 0.62.3 dan saya langsung download dari situ http://www.freetds.org. Freetds ini dibutuhkan untuk antar muka koneksi ke database ms-sql, sebetulnya freetds bisa juga sebagai antar muka koneksi ke sybase tapi kita tidak sedang membahas itu :-) kalo mau, cari aja referensi ditempat lain ya.......

mari kita kembali ke directory /usr/local/src dan memulai tahapan instalasi freetds..
root@gateway:/usr/local/srcl# tar zxvf /home/bdul/freetds-stable.tgz
root@gateway:/usr/local/srcl# cd freetds-0.62.3
root@gateway:/usr/local/srcl# ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
root@gateway:/usr/local/srcl# make
root@gateway:/usr/local/srcl# make install
root@gateway:/usr/local/srcl# make clean

kalo proses ini semua berjalan lancar maka akan terdapat directory /usr/local/freetds. dapat terlihat seperti dibawah ini :
root@gateway:/usr/local/src# ls -l /usr/local/freetds
total 4
drwxr-xr-x 2 root root 144 Jun 9 10:00 bin
drwxr-xr-x 2 root root 144 Jun 9 10:00 etc
drwxr-xr-x 2 root root 488 Jun 9 10:00 include
drwxr-xr-x 2 root root 656 Jun 9 10:00 lib
drwxr-xr-x 3 root root 72 Jun 9 10:00 man
drwxr-xr-x 3 root root 72 Jun 9 10:00 share

mari kita coba untuk mencoba freetds untuk mengakses database ms-sql. sebelum mencoba kita pindah dulu ke directory freetds
root@gateway:/usr/local/srcl# cd /usr/local/freetds

untuk mencoba koneksi kita menggunakan 'tsql' . untuk lebih jelas tentang -S -U silahkan belajar sendiri aja ya........
root@gateway:/usr/local/freetds# bin/tsql -S 192.168.1.1 -U express
locale is "C"
locale charset is "ANSI_X3.4-1968"
Password:
1>

apabila mendapatkan keluaran seperti yang diatas ini, berarti instalasi freetdsnya berjalan dengan baik.


4. Instalasi apache

apache ini digunakan untuk web server, ada banyak web server yang dapat digunakan salah satunya adalah apache. mari kita mulai tahapan instalasi apache dan kembali ke direktory /usr/local/src.
root@gateway:/usr/local/srcl# tar zxvf /home/bdul/httpd-2.0.47.tar.gz
root@gateway:/usr/local/srcl# cd httpd-2.0.47
root@gateway:/usr/local/srcl# ./configure --enable-so
root@gateway:/usr/local/srcl# make
root@gateway:/usr/local/srcl# make install

kalo proses ini semua berjalan lancar maka akan terdapat directory /usr/local/apache2. dapat terlihat seperti dibawah ini :
root@gateway:/usr/local/src# ls -l /usr/local/apache2
total 23
drwxr-xr-x 2 root root 464 Jun 10 16:04 bin
drwxr-xr-x 2 root root 312 Jun 10 16:04 build
drwxr-xr-x 2 root root 96 Jun 10 16:04 cgi-bin
drwxr-xr-x 2 root root 336 Jun 10 16:08 conf
drwxr-xr-x 3 root root 1024 Jun 10 16:04 error
drwxr-xr-x 3 root root 1400 Jun 10 17:20 htdocs
drwxr-xr-x 3 root root 4600 Jun 10 16:04 icons
drwxr-xr-x 2 root root 3568 Jun 10 16:04 include
drwxr-xr-x 2 root root 448 Jun 10 16:04 lib
drwxr-xr-x 2 root root 112 Jun 11 13:34 logs
drwxr-xr-x 4 root root 96 Jun 10 16:04 man
drwxr-xr-x 14 root root 8320 Jun 10 16:04 manual
drwxr-xr-x 2 root root 112 Jun 10 16:08 modules

mari kita coba untuk mengaktifkan web server dengan perintah:
root@gateway:/usr/local/src# /usr/local/apache2/bin/apachectl start

untuk melihat servis apache berjalan dengan baik lakukan perintah berikut:
root@gateway:/usr/local/apache2# ps aux | grep apache
root 3524 1.0 2.1 5920 2684 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3525 1.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3526 0.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3527 0.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3528 0.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start
nobody 3529 0.0 2.1 5936 2696 ? S 16:55 0:00 /usr/local/apache2/bin/httpd -k start

apabila mendapatkan keluaran seperti yang diatas ini, berarti instalasi apache berjalan dengan baik.


5. Instalasi php

Tahapan terakhir adalah install php nya sendiri. mari kita kembali ke directory /usr/local/src dan memulai dengan extrak dan installasi
root@gateway:/usr/local/src# tar zxvf /home/bdul/php-4.2.3.tar.gz
root@gateway:/usr/local/src# cd php-4.2.3
root@gateway:/usr/local/src# ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql \
--with-sybase=/usr/local/freetds --with-mssql=/usr/local/freetds
root@gateway:/usr/local/src# make
root@gateway:/usr/local/src# make install

kopikan php.ini ke directory /usr/local/lib/php.ini
root@gateway:/usr/local/src# cp php.ini-dist /usr/local/lib/php.ini

edit file httpd.conf pada directory /usr/local/apache2/conf/ dan tambahkan baris berikut
LoadModule php4_module libexec/libphp4.so
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

restart apache anda dengan perintah berikut
root@gateway:/usr/local/src# /usr/local/apache2/bin/apachectl restart

buat file test.php dan letakkan di directory /usr/local/apache2/htdocs. isi file adalah sebagai berikut :
phpinfo();
?>

coba akses file tersebut melalui browser anda, apabila ada keterangan konfigurasi php maka keseluruhan installasi berjalan dengan sukses :-)
jangan lupa untuk mengucapkan 'Alhamdulillah hirobbil alamin'

6. Referensi
www.apache.org
www.php.net
www.mysql.org
www.freetds.org

No comments: