Tahun III, Nomor 13, April 2001

X-Terminal

Home
Halaman Muka
 

Upgrade PHP sebagai module Apache Web Server pada Linux RedHat 6.2

Membuat Class dalam PHP
 

 

Ringkasan:
XTerminal merupakan salah satu model thin client yang dapat dibangun dengan platform Linux. Teknologi yang mirip sistem mainframe ini semakin populer karena dapat menghemat sumber daya hardware tanpa perlu mengurangi performance. 

Pendahuluan 

Platform Linux yang kian berkembang dan memasyarakat telah terbukti memberikan banyak solusi alternatif yang mendorong efisiensi, penghematan biaya, dan kemudahan kerja. Sifatnya yang open telah melahirkan berbagai kombinasi baru di bidang teknologi informasi dan dapat dimanfaatkan oleh siapa saja yang mau memanfatkannya. 

Cara Kerja 

Ini adalah mekanisme client-server. Client di-boot menggunakan disket yang sudah terpasang kernel Linux. Setelah kernel di-load dalam memory, ia mulai bekerja untuk mencari server yang memiliki boot protocol (BOOTP). Server yang menangkap permintaan client memeriksa terlebih dahulu apakah client tersebut sudah terdaftar sebagai komputer yang boleh masuk. Kalau ya, server memberikan IP address kepada client, dan selanjutnya menjalankan XWindow dimana prosesnya terjadi di server namun hasilnya tampak di client. 

Pertanyaan bisa muncul pada kalimat ``apakah client tersebut sudah terdaftar ?''. Berarti ada informasi unik untuk setiap client yang diberikan pada server. Informasi itu adalah ``nomor hardware'' ethernet card yang terpasang pada client. Nomor ini dapat diketahui pada saat kernel di-load dalam memory.
Penggunaan disket sebagai pemicu menjalankan kernel merupakan salah satu alternatif. Alternatif lainnya yang ``lebih clean'' adalah menggunakan boot rom yang terpasang pada ethernet card. Tulisan ini sendiri hanya membahas cara kerja yang pertama (menggunakan disket) karena mayoritas komputer biasanya memiliki disket, dan bukan boot rom, termasuk komputer yang dimiliki penulis :) 

Untuk Siapa dan Mengapa Diperlukan 

Dilihat dari cara kerjanya, sistem ini sangat cocok untuk mereka yang memiliki dua komputer atau lebih. Dengan kata lain sangat banyak institusi yang bisa memanfaatkan teknologi XTerminal seperti warnet, perkantoran, penyewaan komputer, atau bagi mereka yang hanya sekedar mencoba untuk menggunakan Linux sebagai sistem operasi sehari-hari.
Seperti kita ketahui dalam suatu jaringan biasanya jumlah server lebih sedikit ketimbang client. Sistem XTerminal sendiri bisa dipasang dengan satu server dan beberapa client, sehingga penggunaannya memberikan berbagai keuntungan seperti: 

•Spesifikasi komputer untuk client sangat minimal. 
•Upgrading hardware dan program menjadi lebih mudah karena hanya terjadi di sebuah komputer server. 
•Akhirnya dari keseluruhan poin di atas diperoleh penghematan biaya serta waktu yang digunakan untuk instalasi dan perawatan sistem. 

Pemasangan sistem XTerminal membutuhkan pengetahuan dan pengalaman seperti: 

•Instalasi Linux 
•Konfigurasi network 
•Konfigurasi XWindow 
•Konfigurasi dan kompilasi kernel 

Tulisan ini juga membutuhkan mereka yang memiliki kualifikasi di atas. 

Persyaratan Hardware 

Server
Karena semua proses program dijalankan oleh server, maka hardware-nya harus memiliki spesifikasi prosesor, harddisk, dan RAM yang disesuaikan dengan besarnya program dan jumlah client yang memanggilnya. Ini menjadi sangat relatif. Anda bisa ke www.kafelinux.com untuk pengalaman warnet mereka yang telah menggunakan teknologi ini. Secara umum server dengan prosesor Pentium III atau AMD K6-2 300, RAM 256 MB, serta harddisk IDE 7 GB sudah cukup untuk 10 client yang menjalankan browser Netscape Navigator. 

Client
Komputer client cukup dengan prosesor 386 dengan RAM 4 MB, sebuah floppy disk (disket), monitor, dan mouse. Harddisk tidak diperlukan karena semua program terletak di server. Prosesor sendiri lebih banyak digunakan untuk menangani komunikasi network, sedangkan proses aplikasi berlangsung di servernya sendiri yang ditampilkan ke layar monitor client. 

Instalasi 

Distribusi Linux & Jaringan 
Distribusi Linux yang digunakan bisa apa saja. Penulis sendiri telah mencobanya dengan distribusi SuSE 7.0. Tulisan ini mengasumsikan network address yang digunakan 192.168.1.0 dimana server memiliki IP address 192.168.1.1 sedangkan clientnya 192.168.1.2, 192.168.1.3, dst. 

Pra XTerminal 
Bagian ini untuk mempersiapkan segala sesuatunya sebelum kita memasang paket XTerminal yang bisa diperoleh lewat proses download dari Internet. Distribusi yang diperuntukkan untuk server jaringan telah menyediakan kebutuhan pra XTerminal ini seperti: kernel, XFree86, NFS server, dan BOOTP server. 

Kernel
Umumnya kernel untuk server dari distribusi Linux yang terpasang sudah menyertakan Linux Kernel dengan feature network yang dibutuhkan untuk sistem ini antara lain: ethernet card driver dan TCP/IP. 

Jaringan
Sebaiknya Anda menyiapkan sebuah Linux client yang ``lengkap'' (dengan harddisk) yang berfungsi untuk menguji konektivitas jaringan (gunakan ping) dan juga untuk menguji apakah NFS server berfungsi dengan baik (dengan cara mounting ke remote file system). Katakanlah nomor IP Linux client ini adalah 192.168.1.2, dan dari sini lakukan ping ke server. 
$ ping 192.168.1.1 

XWindow
Pastikan juga XWindow sudah dapat diaktifkan, lengkap dengan xdm-nya. Untuk SuSE Anda bisa masuk ke runlevel 3 untuk mengaktifkan xdm. 
# init 3 
sedangkan RedHat atau Mandrake pada runlevel 5. 

NFS Server 
Setelah paket NFS server di-install, berikan hak bagi setiap client di jaringan 192.168.1.0 untuk bisa terhubung ke server. Tambahkan baris berikut pada file /etc/hosts.allow. 
192.168.1. 
Buatlah direktori /tftpboot 
# mkdir /tftpboot 
dan tambahkan pada file /etc/exports baris berikut ini 
/tftpboot 192.168.1.0/255.255.255.0(ro,no_root_squash) 
Sekarang pindah ke Linux client yang lengkap untuk menguji-coba NFS server ini. 
# mkdir /test 
# mount 192.168.1.1:/tftpboot /test 
Jika tidak ada pesan kesalahan, berarti NFS server berfungsi dengan baik. 

BOOTP Server 
Instalasi kali ini membutuhkan /usr/sbin/bootpd (dipakai oleh inetd). SuSE meletakkannya di paket nkita.rpm, sedangkan RedHat bootp.rpm. 
# rpm -i nkita.rpm 
BOOTP digunakan untuk menangani permintaan boot dari client seperti mounting root filesystem dan pemberian IP address. 

Paket Linux Terminal Server Project 
LTSP atau Linux Terminal Server Project merupakan proyek yang mengkhususkan diri pada sistem thin client ini. Anda bisa memperoleh link yang sangat lengkap yang berkaitan dengan instalasi sistem ini. Semuanya ada di http://www.ltsp.org/download. Untuk tulisan ini cukup download file berikut: 
•http://www.ltsp.org/download/lts/lts_core-2.04-0.i386.rpm 
lts_core merupakan paket utama untuk konfigurasi sistem ini. Nama file di atas adalah versi saat tulisan ini dibuat. Tentunya Anda dapat menentukan file yang dimaksud jika versinya berubah. Sekarang install: 
# rpm -i lts_core-2.04-0.i386.rpm 
Paket ini secara default di-set untuk konfigurasi network 192.168.0.0 dengan IP server 192.168.1.254. Sedangkan tulisan ini menggunakan network 192.168.1.0 dan IP server 192.168.1.1. Untuk mengubah nilai default ini, buka file /tmp/lts_core-2.04/CONFIG, dan lakukan dua perubahan berikut: 
IP_NETWORK_BASE=192.168.1 
IP_SERVER=${IP_NETWORK_BASE}.1 
Jalankan scriptnya: 
# cd /tmp/lts_core-2.04 
# sh suse-7.0.sh 
Di direktori yang sama terdapat beberapa link ke suatu script yang bersesuaian dengan distro Linux beserta versi yang digunakan. Gunakan sesuai dengan distro yang Anda pasang, setelah itu jalankan script lainnya. 
# cd /tftpboot/lts/templates 
# ./ltsp_initialize 
Akan muncul pesan pembukaan, dan tahapan-tahapan berikutnya adalah berupa tanya jawab. 
The Linux Terminal Server Project (http://www.ltsp.org) 

About to update important system files.  If you would like to stop and review 
the changes that are about to be made, you can quit now and look at the 
replacement files that are about to be installed. 

At any time, you can answer 'C' and the script will continue with the defaults 

-> Press [ENTER] to go on 
Sampai di sini tekan ENTER saja, dan akan tampil pesan yang memberitahukan file apa saja yang akan diubah. 
The following files will be modified/ created: 

/etc/exports                                             update    [Y] 
   Configuration file for the nfs daemon 
/etc/bootptab                                            update    [N] 
   The configuration file for the bootp daemon - not needed if you use dhcp 
/etc/X11/xdm/xdm-config                                  create    [Y] 
   The main configuration file of the XDM daemon 
/etc/X11/xdm/Xaccess                                     create    [Y] 
   Configure xdm to allow any host to login 
/etc/hosts.allow                                         update    [Y] 
   Configuration file for tcp wrappers 
/etc/rc.config                                           update    [Y] 
   Set syslogd accepting log messages in rc.congfig 
/etc/rc.config                                           update    [Y] 
   Set syslogd accepting log messages in rc.congfig 
/etc/inetd.conf                                          update    [Y] 
   Start bootpd from inetd - don't use bootpd and dhcpd at same time 
/etc/inetd.conf                                          update    [Y] 
   Start tftpd from inetd 
/etc/rc.config                                           update    [Y] 
   Setup starting portmapper in rc.congfig 

-> Press [ENTER] to go on 
Tekan ENTER kembali untuk melanjutkan konfigurasi. 
/etc/rc.config                                           update    [Y] 
   Setup starting NFS-Server in rc.congfig 
/etc/dhcpd.conf.example                                  create    [Y] 
   Example configuration file for the dhcp daemon 
/etc/rc.config                                           update    [Y] 
   Setup starting dhcp daemon in rc.congfig 

Do you want to stop now and review the files? (Yes/No/Cont) [Y] 
Kalau Anda mengizinkan terjadi perubahan pada file di atas, jawab dengan n (No). 
Configuration file for the nfs daemon 
   (update /etc/exports)? (Yes/No/Cont) [Y] 
Tekan ENTER yang berarti Yes. 
The configuration file for the bootp daemon - not needed if you use dhcp 
   (update /etc/bootptab)? (Yes/No/Cont) [N] 
Kita akan menggunakan bootp daemon, jadi jawablah dengan y (Yes). 
The main configuration file of the XDM daemon 
   (create /etc/X11/xdm/xdm-config)? (Yes/No/Cont) [Y] 
Tekan ENTER. 
Configure xdm to allow any host to login 
   (create /etc/X11/xdm/Xaccess)? (Yes/No/Cont) [Y] 
ENTER lagi. 
Configuration file for tcp wrappers 
   (update /etc/hosts.allow)? (Yes/No/Cont) [Y] 
Tekan ENTER. 
Set syslogd accepting log messages in rc.congfig 
   (update /etc/rc.config)? (Yes/No/Cont) [Y] 
Tekan ENTER. 
Start bootpd from inetd - don't use bootpd and dhcpd at same time 
   (update /etc/inetd.conf)? (Yes/No/Cont) [Y] 
Karena kita menggunakan bootp daemon, maka tekan ENTER yang berarti Yes. 
Start tftpd from inetd 
   (update /etc/inetd.conf)? (Yes/No/Cont) [Y] 
Tekan ENTER. 
Setup starting portmapper in rc.congfig 
   (update /etc/rc.config)? (Yes/No/Cont) [Y] 
Tekan ENTER. 
Setup starting NFS-Server in rc.congfig 
   (update /etc/rc.config)? (Yes/No/Cont) [Y] 
Tekan ENTER. 
Example configuration file for the dhcp daemon 
   (create /etc/dhcpd.conf.example)? (Yes/No/Cont) [Y] 
Kita tidak menggunakan DHCP, jadi jawab dengan n (No). 
Setup starting dhcp daemon in rc.congfig 
   (update /etc/rc.config)? (Yes/No/Cont) [Y] 
Juga jawab dengan n (No). 
/etc/exports                                             update    [Y] 
   Configuration file for the nfs daemon 
/etc/bootptab                                            update    [N] 
   The configuration file for the bootp daemon - not needed if you use dhcp 
/etc/X11/xdm/xdm-config                                  create    [Y] 
   The main configuration file of the XDM daemon 
/etc/X11/xdm/Xaccess                                     create    [Y] 
   Configure xdm to allow any host to login 
/etc/hosts.allow                                         update    [Y] 
   Configuration file for tcp wrappers 
/etc/rc.config                                           update    [Y] 
   Set syslogd accepting log messages in rc.congfig 
/etc/rc.config                                           update    [Y] 
   Set syslogd accepting log messages in rc.congfig 
/etc/inetd.conf                                          update    [Y] 
   Start bootpd from inetd - don't use bootpd and dhcpd at same time 
/etc/inetd.conf                                          update    [Y] 
   Start tftpd from inetd 
/etc/rc.config                                           update    [Y] 
   Setup starting portmapper in rc.congfig 
Tekan ENTER. 
/etc/rc.config                                           update    [Y] 
   Setup starting NFS-Server in rc.congfig 
/etc/dhcpd.conf.example                                  create    [N] 
   Example configuration file for the dhcp daemon 
/etc/rc.config                                           update    [N] 
   Setup starting dhcp daemon in rc.congfig 

Ready to update the system files? (Yes/No) [No] 
Anda masih diberi kesempatan untuk membatalkan seluruh perubahan. Jawab dengan yes yang berarti Anda menyetujui perubahan terhadap seluruh file konfigurasi yang disebutkan. 
Kemudian lakukan restart server. Secara mudah Anda bisa melakukannya dengan cara pindah runlevel. 
# init 1 
# init 3 
Untuk RedHat dari runlevel 1 ke runlevel 5. 
Kernel untuk Client 
Pasang paket source kernel, dan backup dulu file konfigurasi yang ada. 
# cd /usr/src/linux 
# cp .config .config.server 
Kemudian lakukan beberapa perubahan yang berkaitan dengan hardware pada client. 
# make menuconfig 
Pada menu utama, pilih Networking options dan tandai: 
•IP: kernel level autoconfiguration 
•BOOTP support 
Kemudian kembali ke menu utama, pilih Filesystems Network File Systems dan tandai sebagai built-in (*): 
•NFS filesystem support 
•Root filesystem on NFS 
Kembali ke menu utama, pilih Block devices dan tandai 
•RAM disk support 
•Initial RAM disk (initrd) support 
Lakukan perubahan lainnya yang dianggap perlu yang berkaitan dengan hardware pada client. Jika hardware client beragam - terutama pada ethernet card - maka sebaiknya Anda memilih semua kemungkinan ethernet card yang Anda miliki. Dengan demikian sebuah kernel dapat digunakan untuk seluruh client. Begitu juga dengan pemilihan prosesor, pilih prosesor yang terendah. Meski hal tersebut tidak mutlak namun memudahkan pekerjaan Anda karena tidak harus mengkompilasi kernel beberapa kali untuk hardware yang berbeda-beda. Juga gunakan modus built-in (*) - bukan module (M) - untuk konfigurasi.<../../footnode.html#foot248>Jika Anda sudah yakin dengan konfigurasinya, simpanlah. Seperti biasa jalankan tahapan kompilasi kernel. 
# make dep 
# make bzImage 
Langkah berikut untuk membuat apa yang disebut dummy device yang berkaitan dengan proses mounting root directory oleh kernel yang terpasang di disket.
# mknod /dev/boot255 c 0 255 
Sekarang masukkan disket kosong, dan burn kernel ke disket. 
# fdformat /dev/fd0h1440 
# dd if=/usr/src/linux/arch/i386/boot/bzImage of=/dev/fd0 
# rdev /dev/fd0 /dev/boot255 
Langkah di atas dapat Anda lakukan berkali-kali untuk disket lainnya sesuai jumlah komputer client yang ada, kecuali Anda rela untuk memindah-mindahkan disket untuk proses booting setiap client :) 

Konfigurasi Client 

Identitas Ethernet Card 
Sekarang boot komputer client dengan disket yang telah dibuat pada langkah sebelumnya. Seharusnya kini Anda mendapat informasi mengenai hardware yang dikenal oleh kernel pada komputer yang bersangkutan. Coba cari informasi yang mirip seperti baris berikut: 
eth0: RealTek RTL-8029 found at 0xdf80, IRQ 9, 00:50:BA:EE:5A:BA. 
Sekarang catatlah nomor 00:50:BA:EE:5A:BA di atas yang merupakan identitas ethernet card. Setiap ethernet card bisa berbeda-beda. Mungkin Anda menemukan pesan kesalahan berupa pencarian BOOTP server. Abaikan saja, karena yang kita butuhkan hanya informasi di atas. 

Pemberian nomor IP 
Setiap client harus diberi nama. Misalnya client002 ber-IP 192.168.1.2, dan client003 ber-IP 192.168.1.3, dst. Client yang ingin bergabung sebagai workstation harus didaftarkan terlebih dahulu. 
Di server, Anda perlu menambah baris berikut di file /etc/bootptab agar client002 boleh masuk. 
client002:tc=.ltsp:ha=0050BAEE5ABA:ip=192.168.1.2: 
client002 merupakan nama workstation bersangkutan. 0050BAEE5ABA merupakan identitas ethernet card yang sudah Anda peroleh di tahapan sebelumnya. Sedangkan 192.168.1.2 merupakan nomor IP-nya. 
IP - berikut nama client - juga perlu didaftarkan di /etc/hosts. 
192.168.1.2 client002 

XDM dan SysLog 
Konfigurasi yang berkaitan dengan hardware client untuk sistem XWindow seperti mouse, vga card, atau device lainnya ada di /tftpboot/lts/ltsroot/etc/lts.conf. SysLog<../../footnode.html#foot366> untuk setiap client juga bisa dilakukan. Pada section Default, ubahlah nilai XDM_SERVER dan SYSLOG_HOST menjadi seperti berikut ini: 
XDM_SERVER         = 192.168.1.1 
SYSLOG_HOST        = 192.168.1.1 

XF86Config
Untuk menjalankan X, secara default sistem yang dikembangkan LTSP tidak memerlukan file konfigurasi XF86Config<../../footnode.html#foot282>. Namun ada beberapa alasan mengapa kita tetap membutuhkannya yang dikarenakan adanya kemungkinan berikut: 
•LTSP belum menyediakan X<../../footnode.html#foot284>server yang mendukung hardware client. 
•Versi XFree86 yang digunakan LTSP tidak sesuai dengan yang ada di server.
•Membuat XF86Config lebih mudah karena telah tersedia program bantu dari distribusi terkait seperti SaX, XF86Setup, xf86config, dsb. 
Anda memang bisa menggunakan xf86config yang dijalankan di server untuk membuat file XF86Config untuk client. Tapi akan lebih mudah lagi jika Anda bisa menggunakan harddisk kedua<../../footnode.html#foot291>- yang dipasang di client - untuk menjalankan program seperti SaX atau XF86Setup agar lebih memudahkan. 
# sax 
Setelah program konfigurasi dijalankan, jalankan startx: 
# startx 
kalau Anda sudah mendapatkan tampilan grafis yang diinginkan, kini carilah program X: 
# whereis X 
X: /usr/X11R6/bin/X /usr/X386/bin/X /usr/X386/man/man7/X.7.gz 
X biasanya merupakan symbolic link, misalkan ke file bernama XF86_SVGA. Upload file ini ke server pada direktori /tftpboot/lts/ltsroot/ltsbin. 
Upload juga file /etc/XF86Config ke server dan ubah namanya menjadi /tftpboot/lts/ltsroot/etc/XF86Config.002.
Kemudian lakukan perubahan pada file /tftpboot/lts/ltsroot/lts.conf dengan menambahkan baris berikut: 
[client002] 
XSERVER = XF86_SVGA 
XF86CONFIG_FILE = XF86Config.002 
Kini - di komputer client - lepaskan harddisk , masukkan disket boot, dan restart. 

Disket
Adakalanya setiap user di client ingin menggunakan disket (floppy disk) untuk aktifitas copy. Ketika Anda dihadapkan pada terminal, semuanya terjadi di server, termasuk device /dev/fd0 yang juga merupakan floppy milik server. Oleh karena itu dibutuhkan daemon di client yang menerima permintaan untuk aktifitas ini. Daemon ini dapat diperoleh di paket mtools.rpm. Setelah meng-install-nya, jalankan perintah berikut di server: 
# cp /usr/bin/floppyd /tftpboot/lts/ltsroot/bin 
# cd /tftpboot/lts/ltsroot/lib 
# cp /usr/lib/libnsl.so libnsl.so.1 
# cp /usr/X11R6/lib/libSM.so.6 . 
# cp /usr/X11R6/lib/libICE.so.6 . 
Kemudian tambahkan baris berikut pada /tftpboot/lts/ltsroot/etc/rc.local sebelum section ``Build the start_ws script''. 
RUN_FLOPPYD=`get_cfg RUN_FLOPPYD N` 

if [ "${RUN_FLOPPYD}" = "Y" ]; then 
        echo "Running floppyd" 
        /bin/floppyd -d /tmp/fd0 
fi 
Juga tambahkan baris berikut pada /tftpboot/lts/ltsroot/etc/lts.conf section ``Default'': 
RUN_FLOPPYD = Y 
Restart client, login, dan pada home directory buat file .mtoolsrc: 
drive a: file="$DISPLAY" remote 1.44m mformat_only 
Masukkan disket, lalu jalankan floppyd_installtest untuk mencoba. 
$ floppyd_installtest -f $DISPLAY 
Perhatikan nyala lampu drive, dan jika tidak muncul pesan kesalahan berarti semuanya berfungsi dengan baik. Untuk melakukan aktivitas yang berkaitan dengan disket, gunakan program dari paket mtools seperti mdir, mformat, mcopy, dsb. Contoh untuk melihat isi disket: 
$ mdir a: 
format: 
$ mformat a: 
copy: 
$ mcopy /etc/hosts a: 

Billing System Warnet 
Setelah dipastikan user tidak boleh login dua kali, tambahkan baris berikut pada /etc/X11/xdm/Xstartup. 
SUDAHLOGIN=`who | grep $USER` 
if ! [ -z "$SUDAHLOGIN" ]; then 
  $xmessage -file /usr/share/info/justonce -timeout 10 -center 
  exit 1 
fi 

Bibliografi 

1 http://www.solucorp.qc.ca/xterminals/
2 http://www.ltsp.org/
3 http://www.kafelinux.com/ 
| Upgrade PHP sebagai module Apache Web Server pada Linux RedHat 6.2 | Membuat Class dalam PHP  |

Email : jakarta@jakarta.linux.or.id


| Home | Halaman Muka
 © 1999-2001  ELEKTRO Online
All Rights Reserved.
Last modified on :