Tutorial Membuat Aplikasi UniGUI ISAPI Mode Pada Apache Dengan Delphi
Kali ini kita akan melihat proses pembuatan aplikasi berbasis web dengan UniGUI yang membahas mulai memilih jenis aplikasi UniGUI untuk web, kompilasi menjadi modul ISAPI, sampai konfigurasi web server Apache untuk mengakomodasi aplikasi UniGUI.
Saran saya, sebaiknya Anda ikuti dulu tutorial pembuatan aplikasi database uniGUI dan integrasi FastReport sebelum melanjutkan dengan tutorial ini.
Memilih Jenis Aplikasi UniGUI
Aplikasi jenis apa yang cocok untuk Anda? Mari kita lihat.
Opsi pertama, seperti biasa, akan membuat aplikasi UniGUI yang berjalan sebagai aplikasi desktop dan/atau aplikasi web, sebagai executable tunggal yang memiliki web server internal sendiri dan tidak bergantung ke web server eksternal seperti Apache atau IIS.
Opsi kedua mirip opsi pertama, dilengkapi Delphi compiler directives yang dapat diedit untuk menentukan jenis ouput, apakah sebagai executable atau sebagai modul ISAPI (file DLL) yang dapat dijalankan oleh web server (Apache atau IIS)
Opsi ketiga hanya memberi pilihan output sebagai modul ISAPI untuk web server eksternal, berupa file DLL. Kita tahu bahwa file DLL lebih repot untuk di-debug daripada file EXE sehingga saran saya jangan memilih opsi ini bila Anda masih dalam tahap permulaan dengan Delphi dan UniGUI.
Opsi keempat akan memberikan output sebagai executable yang berjalan sebagai modul servis di Windows. Output tetap menjadi web server, tanpa GUI desktop, dan berjalan sebagai daemon.
Sesuai judul, kita akan membuat aplikasi web dengan UniGUI, yang targetnya adalah modul ISAPI untuk Apache. Kita dapat memilih opsi ketiga untuk pekerjaan ini, tapi ingat, untuk menghindari kerepotan saat debugging nanti maka kita akan memilih opsi kedua saja.
Kita mulai dengan membuat aplikasi baru dan pilih opsi kedua: VCL Application/Standalone Server/ISAPI Module. Bila Anda belum jelas tentang bagaimana membuat aplikasi baru UniGUI, silahkan ikuti tutorial pembuatan aplikasi UniGUI.
Di aplikasi baru yang telah dibuat, klik menu Project>View Source, dan perhatikan isinya:
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
| {$define UNIGUI_VCL} {$ifndef UNIGUI_VCL} library { $else } program { $endif } app1; uses {$ifndef UNIGUI_VCL} uniGUIISAPI, { $endif } Forms, ServerModule in 'ServerModule.pas' {UniServerModule: TUniGUIServerModule} , MainModule in 'MainModule.pas' {UniMainModule: TUniGUIMainModule} , Main in 'Main.pas' {MainForm: TUniForm} ; {$R *.res} {$ifndef UNIGUI_VCL} exports GetExtensionVersion, HttpExtensionProc, TerminateExtension; { $endif } begin {$ifdef UNIGUI_VCL} Application . Initialize; TUniServerModule . Create(Application); Application . Run; { $endif } end . |
Buka unit Main.pas dan tampilkan formnya. Tambahkan sebuah TUniButton dan sebuah TUniMemo. Event OnClick pada UniButton1 diisi dengan kode seperti berikut:
0001
0002
0003
0004
0005
0006
0007
0008
| procedure TMainForm . UniButton1Click(Sender: TObject); begin UniMemo1 . Clear; UniMemo1 . Lines . Add( 'Tes.. 1' ); UniMemo1 . Lines . Add( 'Tes.. 2' ); UniMemo1 . Lines . Add( 'Tes.. 3' ); UniMemo1 . Lines . Add( 'Tes.. 4' ); end ; |
Sekarang jalankan aplikasi:
Dan coba juga akses aplikasi kita via web dengan browse alamat http://localhost:8087/.
Sudah sesuai harapan? Tutup aplikasi dan kembali ke Delphi, save projek kita ke sebuah folder. Katakan Anda menyimpannya di C:\UniGUI\App1 dengan nama projek unigui1.dpr.
Kompilasi Sebagai Modul ISAPI
Lanjutan dari compiler directive di atas, mari kita lihat bagaimana menghasilkan modul ISAPI dari aplikasi kita.
Kembali klik menu Project>View Source dan ubah baris pertama, yaitu {$define UNIGUI_VCL} menjadi //{$define UNIGUI_VCL} (menjadi komentar) sehingga directive-directive di bawahnya tidak berpengaruh lagi pada kompilasi. Dengan begitu potongan kode akan menjadi:
0001
0002
0003
0004
0005
0006
0007
0008
0009
| //{$define UNIGUI_VCL} {$ifndef UNIGUI_VCL} library { $else } program { $endif } app1; ........................ |
0001
0002
0003
| library app1; ........................ |
Mengatur Setting Apache
Pastikan bahwa Anda telah menginstall Apache Web Server dengan benar dan telah berjalan baik.
Di sini saya tidak akan menerangkan tentang instalasi Apache. Bila Anda belum paham tentang ini, silahkan ikuti tutorial instalasi Apache atau silahkan gunakan paket Xampp, WampServer atau AppServ yang telah menyediakan paket instalasi Apache lengkap dengan PHP dan database MySQL.
Kini masuk ke direktori instalasi Apache. Direktori ini berbeda-beda tergantung pada saat Anda menginstall Apache, direktori mana yang Anda tentukan sebagai direktori instalasi. Yang umum, direktori ini adalah:
- Pada Xampp, terletak di C:\Xampp\Apache
- Pada WampServer, berada di C:\Wamp\Apache
- Pada AppServ, terletak C:\AppServ\Apache
- Pada instalasi manual Apache, berada di C:\Program Files\Apache Group\Apache
Nah, dalam direktori tersebut, masuk lagi ke direktori conf di mana file-file konfigurasi Apache berada. Buka file httpd.conf dengan teks editor. Anda boleh menggunakan Notepad, tapi sebaiknya gunakan teks editor yang “lebih canggih” seperti Notepad++ atau EditPlus, yang mampu membedakan antara baris baru Windows dan Unix.
Gunakan fasilitas Find, cari teks modules/mod_isapi.so. Bila ketemu, lihat apakah baris sepenuhnya adalah # LoadModule isapi_module modules/mod_isapi.so, dan bila ya, silahkan buang komentar di depannya (tanda #) untuk mengaktifkan modul isapi loader pada Apache. Dan bila tidak ada tanda komentar (tanda #) di depannya, Anda tidak perlu mengubahnya. Dalam kasus baris ini tidak ditemukan sama sekali, Anda boleh menambahkannya:
0001
| LoadModule isapi_module modules/mod_isapi.so |
0001
| AddHandler isapi -handler .dll |
0001
0002
0003
0004
0005
0006
| <Directory "C:/UniGUI/App1" > Options Indexes FollowSymLinks ExecCGI AllowOverride None Order allow,deny Allow from all </directory> |
Kemudian kita buat alias untuk direktori tersebut. Terserah apa. Katakan myunigui, dan kita buat alias dengan menambahkan:
0001
| Alias /myunigui "C:/UniGUI/App1" |
Langkah terakhir, silahkan restart Apache. Saya melakukannya dari Windows via menu Start>Run (atau tekan tombol Windows + R) di keyboard dan isikan services.msc
Dan setelah muncul window Services, cari service dengan nama Apache (atau Apache x.x) dan klik kanan, pilih Restart.
Sudah?
Kembali lagi ke Delphi. Build ulang projek kita dan lihat apakah kompilasi sudah menghasilkan output dengan ekstensi DLL. Bila sudah berarti setting projek kita sudah ok. Untuk mengetes projek ini sebagai modul ISAPI, buka browser dan masukkan URL
http://server/myunigui/unigui1.dll
Lihat hasilnya dan bandingkan dengan punya saya:
sumber : http://dessystefanatic08.blogspot.com/2012/11/tutorial-membuat-aplikasi-unigui-isapi.html
Access forbidden! You don’t have permission to access the requested object. It is either read-protected or not readable by the server. If you think this is a server error, please contact the webmaster. Error 403 localhost Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 itu error yang saya peroleh.. tolong pencerahannya… terima kasih
ReplyDelete