Kamis, 21 Oktober 2010

Konfigurasi Apache 2 untuk keperluan aplikasi webbase yang menggunakan php

Bermula dari kebiasaan membuat aplikasi webbase menggunakan php, saya sempat ketemu masalah dalam mengimplementasikan aplikasi pada slackware 12. Masalahnya ternyata slackware12 sudah memakai apache versi 2 dimana letak dan cara pengaturan file konfigurasi agak sedikit berbeda dengan apache versi 1 bawaan slackware 11.
Sebelumnya saya mohon ma'af, karena mungkin ada beberapa kata atau istilah yang saya gunakan tidak sesuai secara teknis bila dipandang dari sisi ilmiah, maklum... saya bukan jebolan TI :) hanya seorang newbie... yang mencoba sharing apa yang saya tau. Tulisan ini sekali lagi bukan untuk referensi ilmiah, jadi hanya sebuah tips untuk sekedar menjalankan apache sesuai dengan kebutuhan penulis. kali aja bisa bermanfaat bagi rekan-rekan slackers yang lain :)
Untuk tulisan pertama ini saya pengen berbagi tips untuk sekedar menjalankan apache agar bisa melakukan loading modul php yang akan diperlukan oleh aplikasi webbase yang kita buat dengan php. Tulisan berikutnya saya juga pengen berbagi tips bagaimana melakukan seting virtual host di apache 2, dan tulisan berikutnya lagi, saya juga pengen berbagi lagi tentang implementasi mod_ssl di apache agar aplikasi yang kita pasang di webserver hanya dilewatkan melalui port 443 yang terenkripsi.
Oke... mungkin ini agak panjang... jadi mohon bersabar dan semoga Anda bisa menikmati.
Pertama
Kita harus mengetahui di mana path apache yang biasa kita akses, seperti: httpd.conf, php.ini, mod_php, htdocs, error_log, rc.httpd dan [document_root] dari program kita. Kita harus paham dulu di mana letak file-file dimaksud, agar mudah bagi kita mencari penyelesaian masalah. Perbedaan di apache 2 ini dibanding apache 1 mengenai path adalah letak direktori konfigurasi di /etc/httpd dan direktori log ada di /var/log/httpd, kalau apache 1 nama direktorinya apache. Makanya kita nggak bisa main kopi paste buta dari konfigurasi apache 1 ke konfigurasi apache 2 bawaan slackware default.
Untuk kebutuhan dasar ini, kita cukup memperhatikan file /etc/httpd/httpd.conf dan /etc/httpd/php.ini
Kedua
Kita lakukan konfigurasi sesuai kebutuhan kita, yang penting apachenya bisa jalan. Pertama kita coba menjalankan service apachenya dan memastikan apakah apache default bisa jalan. Periksa di daftar proses ps axf | grep httpd bila muncul seperti ini

2755 ? Ss 0:00 /usr/sbin/httpd -k start
2787 ? S 0:00 \_ /usr/sbin/httpd -k start
2788 ? S 0:00 \_ /usr/sbin/httpd -k start
2789 ? S 0:00 \_ /usr/sbin/httpd -k start
2790 ? S 0:00 \_ /usr/sbin/httpd -k start
2791 ? S 0:00 \_ /usr/sbin/httpd -k start
3574 pts/3 S+ 0:00 | \_ grep httpd

artinya apachenya udah jalan, dan coba akses dari web browser dengan alamat http://localhost, bila ada tulisan it's work, berarti apachenya berjalan normal.
Bila informasinya jauh berbeda dengan keterengan di atas, berarti, ada masalah dalam konfigurasi apache, yang biasanya service apache belum pernah dijalankan atau gagal dijalankan. Coba lakukan restart apache dengan perintah /etc/rc.d/rc.httpd start, namun sebelumnya pastikan file startup tersebut mempunyai permission untuk eksekusi atau 755 atau rwxr-xr-x.
Oke lanjut...
Ketiga
Kita tentukan document_root dari aplikasi yang kita buat. Karena kita baru membahas kebutuhan dasar, maka kita pakai direktori defaultnya apache saja. Sebetulnya pada saat melakukan tes di tahap kedua tadi, Kita sedang mengakses direktori /srv/httpd/htdocs, ini pasti berbeda dari apache versi 1 yang dulu, namun kita tidak merasakan perbedaan tersebut karena direktori /srv/httpd merupakan simbolic link dari /var/www. Didalam direktori htdocs tersebut terdapat file-file manual dari apache dan file testing.
Karena kita belum membahas virtual host, sebaiknya kita manfaatkan direktori htdocs tersebut. Sebelum kita hapus atau kita ganti file-file di dalam direktori tersebut, sebaiknya kita lakukan backup dengan cara mengkopi direktorinya dengan nama lain cp -r /var/www/htdocs /var/www/old_htdocs. Sekarang kita bisa hapus semua file dalam direktori /var/www/htdocs tersebut, atau hapus direktori htdocs tersebut beserta isinya rm -rf /var/www/htdocs dan buat direktori di dalam home kita misal mkdir /home/denic/test, lalu buat symbolic link ln -s /home/denic/test /var/www/htdocs, namun pastikan permission direktori tersebut bisa dibaca oleh daemon apache.
Coba buat file php untuk melakukan testing apakah modul php bisa dijalankan, buat file seperti ini:

<?
phpinfo();
?>

dan beri nama index.php
Kemudian akses dari browser dengan alamat “localhost”, bila kita belum pernah mengubah konfigurasi apache sebelumnya, biasanya hanya akan ditampilkan daftar file index.php, bukan hasil parsing index.php. Saatnya kita perhatikan tahap keempat
Keempat
Lakukan edit file konfigurasi apache di /etc/httpd/httpd.conf, perhatikan beberapa baris berikut:
baris ke 225

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

tambahkan “index.php” supaya browser langsung membaca file php utama kita

<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

Hilangkan tanda pagar di depan baris yang menyatakan include mod_php (biasanya di baris ke 472) menjadi seperti ini

Include /etc/httpd/mod_php.conf

Simpan file konfigurasi tersebut, lalu jalankan atau reload kembali service apachenya dengan perintah /etc/rc.d/rc.httpd restart. Coba akses lagi localhost dari browser, pengalaman saya browser hanya menampilkan halaman putih tanpa tulisan apa-apa.
Solusinya...
Edit file /etc/httpd/php.ini di baris ke 131 ganti tulisan “off” menjadi “on”

short_open_tag = on

dan restart service apache kembali (pastikan setelah merubah file konfigurasi apache, jangan lupa melakukan restart service apachenya).
atau...
tambahkan pada script php kita kata “php” setelah tag <? menjadi seperti ini <?php.
Setelah itu... coba lagi akses dari web browser alamat “localhost”, pengalaman saya, biasanya muncul informasi php yang dimaksud, yang artinya modul phpnya sudah berhasil diload dan kita siap membuat aplikasi webbase menggunakan script php.

Tidak ada komentar:

Posting Komentar