Server untuk aplikasi webgis ini memiliki arsitektur prosesor x86-64. Jadi, server ini sudah mendukung sistem operasi 64-bit. Jumlah RAM pada server ini sebesar 2 GB. Oleh karena itu, server perlu dikonfigurasi agar dapat memanfaatkan ukuran RAM yang besar ini secara optimal.
Name : Extron NetSystem E400 CPU : Intel Xeon E5606 Quad Core @ 2.13 GHz RAM : UDIMM DDR3 2 GB - 1333 ECC Harddisk : SATA 500 GB, 7200 RPM Network : 2x Gigabit Ethernet NIC
Setting BIOS perlu disesuaikan dengan keadaan lingkungan di tempat server berada. Server ini berada di kota Bogor yang memiliki ketinggian 190m - 330m. Selain itu, server diset agar langsung hidup kembali jika terjadi pemadaman listrik. Ubah beberapa setting BIOS seperti di bawah ini.
Main -> Quiet Boot: [Disabled] Advanced -> System Acoustics and Performance Configuration -> Altitude: [300m or less] Server Management -> Resume on AC Power Loss: [Last state]
Server ini memakai sistem operasi Debian GNU/Linux dengan arsitektur prosesor x86-64. Debian merupakan distribusi GNU/Linux yang banyak digunakan sebagai server. Menurut data survei terkini dari W3Techs, 9.2% situs web terkenal di dunia menggunakan Debian. Instalasi Debian membutuhkan satu mini CD dan koneksi internet yang memadai. Koneksi internet ini diperlukan untuk menginstal paket aplikasi server yang dibutuhkan, seperti: Apache, PHP MapScript dan PostgreSQL dari server mirror terdekat.
Unduh CD instalasi Debian netinst (amd64) dan bakar ke CD.
Instal sistem operasi Debian standar.
Login sebagai root (superuser).
Debian GNU/Linux 6.0 p4w tty1 p4w login: root Password: p4w
Ubah server mirror paket aplikasi Debian ke server terdekat.
root@p4w:~# cat > /etc/apt/sources.list << END > deb http://kambing.ui.ac.id/debian squeeze main > deb http://kambing.ui.ac.id/debian-security squeeze/updates main > END
Update sistem operasi server.
root@p4w:~# apt-get update root@p4w:~# apt-get -y upgrade
Instal paket aplikasi server yang dibutuhkan.
root@p4w:~# apt-get -y install apache2 php5 root@p4w:~# apt-get -y install postgresql postgresql-8.4-postgis postgresql-contrib root@p4w:~# apt-get -y install php5-mapscript php5-pgsql php5-gd php5-mcrypt php-apc root@p4w:~# apt-get -y install cpufrequtils
Supaya kinerja server optimal, maka perlu konfigurasi yang disesuaikan dengan hardware server. Konfigurasi yang harus disesuaikan terutama yang berhubungan dengan penggunaan RAM.
Konfigurasi jaringan server terletak di /etc/network/interfaces. Tambahkan jaringan Ethernet dengan IP statik melalui perintah di bawah ini:
root@p4w:~# cat >> /etc/network/interfaces << END > > auto eth0 > iface eth0 inet static > address 192.168.0.1 > netmask 255.255.255.0 > END root@p4w:~# ifup eth0
Konfigurasi server PostgreSQL terletak di /etc/postgresql/8.4/main/postgresql.conf. Ubah konfigurasi default PostgreSQL dengan perintah di bawah ini.
root@p4w:~# PGCONF=/etc/postgresql/8.4/main/postgresql.conf root@p4w:~# sed -i 's/\(max_connections = \)100/\132/' $PGCONF root@p4w:~# sed -i 's/\(shared_buffers = \)24MB/\1256MB/' $PGCONF root@p4w:~# sed -i 's/#\(effective_cache_size = \)128MB/\1768MB/' $PGCONF root@p4w:~# sysctl -w kernel.shmmax=276963328 root@p4w:~# echo 'kernel.shmmax=276963328' >> /etc/sysctl.conf root@p4w:~# /etc/init.d/postgresql restart
Konfigurasi server Apache terletak di direktori /etc/apache2/. Ubah konfigurasi default Apache dengan perintah di bawah ini.
root@p4w:~# APACHECONF=/etc/apache2/apache2.conf root@p4w:~# echo 'ServerName localhost' >> /etc/apache2/httpd.conf root@p4w:~# sed -i '0,/\(MaxClients *\)150/ s//\1 64/' $APACHECONF root@p4w:~# sed -i '0,/\(MaxRequestPerChild *\)0/ s//\110000/' $APACHECONF root@p4w:~# sed -i 's/\(KeepAliveTimeout \)15/\12/' $APACHECONF root@p4w:~# /etc/init.d/apache2 restart
Konfigurasi PHP terletak di /etc/php5/apache2/php.ini. Ubah konfigurasi default PHP dengan perintah di bawah ini.
root@p4w:~# sed -i 's/\(max_execution_time = \)30/\160/' /etc/php5/apache2/php.ini root@p4w:~# /etc/init.d/apache2 restart
File cadangan database Scibun bernama scibun.backup. Lakukan restorasi database Scibun dengan perintah di bawah ini.
root@p4w:~# su - postgres postgres@p4w:~$ cp $BACKUP_PATH/scibun.backup . postgres@p4w:~$ POSTGIS_RESTORE=/usr/share/postgresql-8.4-postgis/utils/postgis_restore.pl postgres@p4w:~$ POSTGIS_SQL=/usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql postgres@p4w:~$ sh $POSTGIS_RESTORE $POSTGIS_SQL scibun scibun.backup -E=UNICODE
Setelah database berhasil direstorasi, jalankan file SQL tambahan dan ubah password database dengan perintah di bawah ini.
postgres@p4w:~$ psql scibun -f $BACKUP_PATH/rpt_industri_check_data.sql postgres@p4w:~$ psql scibun -f $BACKUP_PATH/rpt_industri_petugas.sql postgres@p4w:~$ psql scibun -c "ALTER ROLE postgres WITH PASSWORD 'centrino';" postgres@p4w:~$ exit
File backup aplikasi web Scibun bernama p4wkatalog.tar.gz. Instal aplikasi web tersebut dengan perintah di bawah ini.
root@p4w:~# mkdir /var/www/tmp root@p4w:~# chown -R www-data:www-data /var/www/tmp root@p4w:~# tar xvfz $BACKUP_PATH/p4wkatalog.tar.gz -C /var/www
Supaya keamanan server tetap terjaga, lakukan update keamanan sistem operasi secara berkala.
root@p4w:~# apt-get update root@p4w:~# apt-get -y upgrade
Lakukan backup secara berkala utuk mengantisipasi kegagalan server. Namun jika database jarang berubah, maka cukup lakukan backup setelah terjadi banyak perubahan pada database. Demikian juga dengan aplikasi webnya, jika kodenya tidak berubah maka tidak perlu dibuat backupnya.
root@p4w:~# pg_dump -h localhost -p 5432 -U postgres -Fc -b -v -f '$BACKUP_PATH/scibun.backup' scibun root@p4w:~# cd /var/www root@p4w:/var/www# tar cvfz $BACKUP_PATH/p4wkatalog.tar.gz p4wkatalog
Jika server banyak diakses, maka file log server Apache dan PostgreSQL menjadi sangat besar ukurannya. Jika hal ini tidak dikontrol, maka harddisk bisa menjadi penuh. Konfigurasi rotasi log perlu diubah supaya rotasi berjalan setiap hari. Waktu penyimpanan file log juga dibatasi menjadi 7 hari saja.
root@p4w:~# sed -i 's/weekly/daily/' /etc/logrotate.d/{apache2,postgresql-common} root@p4w:~# sed -i 's/rotate [0-9]*/rotate 7/' /etc/logrotate.d/{apache2,postgresql-common}
Direktori /var/www/tmp digunakan oleh PHP MapScript sebagai tempat penyimpanan citra peta sementara. Seiring dengan banyaknya akses data peta, ukuran direktori ini semakin lama semakin besar. Jika hal ini tidak dikontrol, maka harddisk bisa menjadi penuh dengan cepat. Untuk itu, isi direktori ini perlu dihapus secara berkala setiap hari. Untuk mengotomatisasi proses ini, jalankan perintah di bawah ini.
root@p4w:~# cat > /etc/cron.daily/clean-map-tmp << END > #!/bin/sh > rm -f /var/www/tmp/* > END root@p4w:~# chmod a+x /etc/cron.daily/clean-map-tmp