Bab II. Instalasi

 

Download Versi Terakhir

Source code dan distribusi biner untuk berbagai macam platform (termasuk windows) dapat diperoleh di http://www.php.net.

Instalasi Pada Sistem UNIX

Bagian ini akan menuntun anda dalam melakukan konfigurasi dan instalasi PHP pada sistem UNIX. Beberapa hal yang perlu anda kuasai sebelum memulai proses instalasi ini adalah :

    1. Operasi dasar UNIX (terutama cara menggunakan "make" dan C compiler ) ;
    2. ANSI C compiler ;
    3. Web Server.

Petunjuk Singkat Instalasi (Versi Apache Module)

1.  gunzip apache_1.3.x.tar.gz
2.  tar xvf apache_1.3.x.tar
3.  gunzip php-3.0.x.tar.gz
4.  tar xvf php-3.0.x.tar
5.  cd ../apache_1.3.x
6.  ./configure -prefix=/www
7.  cd ../php-3.0.x
8.  ./configure -with-mysql -with-apache=../apache_1.3.x -enable-track-vars
9.  make
10. make install
11. cd ../apache_1.3.
12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
13. make
14. make install

Selain cara seperti ini, anda juga dapat melakukan cara lain yaitu dengan menyalin file httpd binary ke folder binary anda. Sebelumnya web server anda harus dimatikan terlebih dahulu.

15. cd ../php-3.0.x
16. cp php3.ini-dist /usr/local/lib/php3.ini

Anda dapat mengedit file /usr/local/lib/php3.ini untuk mengeset beberapa option dari PHP. Jika anda menginginkan file ini diletakan di tempat lain, gunakan :
--with-config-file-path=/path pada langkah ke 8 di atas.

17. Edit file httpd.conf atau srm.conf dengan menambahkan :

AddType application/x-httpd-php3 .php3

Sebenarnya anda dapat menentukan ekstensi file yang anda sukai di sini, namun kami sarankan untuk menggunakan .php3

18. Gunakan prosedur normal untuk menjalankan server Apache kembali.

(Anda harus mematikan dan merestart server Apache anda, tidak hanya sekedar me-reload server dengan menggunakan sinyal HUP atau USR1).

 

Konfigurasi

Ada dua cara untuk mengkonfigurasi PHP, yaitu :

Detail dari option untuk konfigurasi yang berbeda adalah sebagai berikut :

Modul Apache

Untuk membuat PHP sebagai modul Apache, ketik "yes" pada pertanyaan "Build as an Apache module ?" (atau berikan option --with-apache=DIR jika anda melakukan konfigurasi secara manual) dan berikutnya masukan letak direktori distribusi Apache anda. Jika anda meng-unpack file distribusi Apache anda pada /usr/local/www/apache_1.2.4, maka ini adalah direktori distribusi Apache anda. Default untuk masukan ini adalah /usr/local/etc/httpd.

Modul fhttpd

Untuk membuat PHP sebagai modul fhttpd, ketik "yes" pada pertanyaan "Build as an fhttpd module ?" (atau berikan option --with-fhttpd=DIR jika anda melakukan konfigurasi secara manual) dan berikutnya masukan letak direktori source fhttpd. Direktori default-nya adalah /usr/local/src/fhttpd. Jika anda menggunakan fhttpd, akan lebih baik jika PHP dibuat sebagai modul, karena akan memberikan kinerja yang lebih baik, lebih terkontrol dan memiliki kemampuan eksekusi jarak jauh.

Versi CGI

Default dari konfigurasi ini adalah membuat PHP sebagai program CGI. Jika anda menggunakan web server yang mendukung PHP sebagai modulnya, anda sebaiknya memilih yang ini dengan pertimbangan performansi yang baik. Namun, versi CGI memungkinkan pengguna Apache untuk menjalankan halaman PHP dengan user id berbeda. Silahkan baca terlebih dahulu bab seputar keamanan jika anda akan menggunakan PHP sebagai CGI.

Dukungan basis data

PHP dapat dikonfigurasi untuk mendukung banyak database (termasuk ODBC), antara lain sebagai berikut :

Adabas D

--with-adabas=DIR

Kompilasi dengan mendukung database Adabas D. Parameter yang dibutuhkan adalah direktori instalasi database Adabas D, yang default-nya di /usr/local/adabasd .
Home Page Adabas


dBase

--with-dbase

Kompilasi dengan mendukung dBase. Tidak memerlukan library eksternal.


filePro

--with-filepro

Mendukung read only filePro. Tidak memerlukan library eksternal.


mSQL

--with-msql=DIR

Kompilasi dengan mendukung mSQL. Parameter untuk option yang diperlukan adalah direktori instalasi mSQL dengan default-nya di /usr/local/Hugher. Ini adalah direktori default untuk distribusi mSQL 2.0. Proses konfigurasi secara otomatis akan mendeteksi versi mSQL berapa yang telah terinstal dan PHP mendukung baik versi 1.0 ataupun 2.0, namun jika anda mengkompilasi PHP dengan mSQL 1.0, anda hanya dapat mengakses database mSQL 1.0, begitu halnya untuk yang versi 2.0.
Lihat juga bab konfigurasi mSQL dalam file konfigurasi.
Home page mSQL


MySQL

--with-mysql=DIR

Kompilasi dengan mendukung MySQL. Parameter untuk option yang diperlukan adalah direktori instalasi mySQL dengan default-nya di /usr/local. Ini adalah direktori default untuk instalasi distribusi MySQL.
Lihat juga bab konfigurasi MySQL dalam file konfigurasi.
Home page MySQL


iODBC

--with-iodbc=DIR

Kompilasi dengan mendukung iODBC. Fitur ini pertama kali dibuat untuk iODBC Driver Manager, yaitu ODBC driver manager yang didistribusikan secara gratis yang dapat dioperasikan di berbagai jenis UNIX. Parameter untuk option yang diperlukan adalah direktori instalasi iODBC dengan default-nya di /usr/local.
Home page ODBC gratis atau home page iODBC.


OpenLink ODBC

--with-openlink=DIR

Kompilasi dengan mendukung OpenLink ODBC. Parameter untuk option yang diperlukan adalah direktori instalasi OpenLink ODBC dengan default-nya di /usr/local/openlink.
Home page OpenLink.

Oracle

--with-oracle=DIR

Kompilasi dengan mendukung Oracle. Telah dicoba dan seharusnya dapat bekerja pada Oracle versi 7.0 sampai 7.3. Parameter untuk option yang diperlukan adalah direktori ORACLE_HOME. Anda tidak harus memberikan parameter ini jika Oracle Environment telah di-set up.
Home page Oracle.

PostgreSQL

--with-pgsql=DIR

Kompilasi dengan mendukung PostgreSQL. Parameter untuk option yang diperlukan adalah direktori instalasi PostgreSQL yang default-nya di /usr/local/pgsql.
Lihat juga bab konfigurasi Postgres dalam file konfigurasi.
Home page PostgreSQL.

Solid

--with-solid=DIR

Kompilasi dengan mendukung Solid. Parameter untuk option yang diperlukan adalah direktori instalasi Solid yang default-nya di /usr/local/solid.
Home page Solid.

Sybase

--with-sybase=DIR

Kompilasi dengan mendukung Sybase. Parameter untuk option yang diperlukan adalah direktori instalasi Sybase yang default-nya di /home/sybase.
Lihat juga bab konfigurasi Sybase dalam file konfigurasi.
Home page Sybase.


Sybase-CT

--with-sybase-ct=DIR

Kompilasi dengan mendukung Sybase-CT. Parameter untuk option yang diperlukan adalah direktori instalasi Sybase-CT yang default-nya di /home/sybase.
Lihat juga bab konfigurasi Sybase-CT dalam file konfigurasi.


Velocis

--with-velocis=DIR

Kompilasi dengan mendukung Velocis. Parameter untuk option yang diperlukan adalah direktori instalasi Velocis yang default-nya di /usr/local/velocis.
Home page Sybase.


Custom ODBC library

--with-custom-odbc=DIR

Kompilasi dengan mendukung custom ODBC library. Parameter untuk option yang diperlukan adalah direktori custom ODBC library yang default-nya di /usr/local.

Option ini dapat dipakai dengan asumsi anda telah mendefinisikan CUSTOM_ODBC_LIBS ketika menjalankan skrip konfigurasi ini. Anda juga harus memiliki header odbc.h di direktori include anda. Jika anda belum memilikinya, buat terlebih dahulu dan include-kan header anda dari sana. Header anda mungkin saja memerlukan definisi ekstra, terutama jika anda bekerja pada sistem multiplatform. Definisikan kesemuanya di CFLAGS.

Misalnya, jika anda menggunakan Sybase SQL pada QNX maka definisikan sebagai berikut :
CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50.


Unified ODBC

--disable-unified-odbc

Men-disable modul Unified ODBC, yang merupakan interface umum untuk semua database berbasis interface ODBC, seperti Solid dan Adabas D. Ini juga dapat bekerja pada ODBC library normal. Telah dicoba pada iODBC, Solid, Adabas D dan Sybase SQL di mana saja. Memerlukan salah satu (dan hanya satu) dari modul-modul ini, atau dengan memberikan custom ODBC library. Option ini hanya dapat bekerja jika salah satu dari option berikut digunakan : --with-iodbc, --with-solid, --with-adabas, --with-velocis, or --with-custom-odbc.

Lihat juga bab konfigurasi Unified ODBC dalam file konfigurasi.


LDAP

--with-ldap=DIR

Kompilasi dengan mendukung LDAP (Lightweight Directory Access Protocol). Parameter untuk option yang diperlukan adalah direktori instalasi LDAP yang default-nya di /usr/local/ldap.

Informasi lebih lanjut tentang LDAP dapat dilihat pada RFC1777 and RFC1778.


Option Konfigurasi Yang Lain

--with-mcrypt=DIR

--with-mcrypt

Kompilasi dengan mendukung mcrypt library. Lihat dokumentasi tentang mcrypt untuk informasi lebih lanjut. Jika anda menggunakan argument opsional DIR, PHP akan mencari mcrypt.h di DIR/include.


--enable-sysvsem

--enable-sysvsem

Kompilasi dengan mendukung Sys V semaphores (didukung oleh kebanyakan Unix derivates). Lihat dokumentasi tentang Semaphore and Shared Memory untuk informasi lebih lanjut.


--enable-sysvshm

--enable-sysvshm

Kompilasi dengan mendukung Sys V shared memory (didukung oleh kebanyakan Unix derivates). Lihat dokumentasi tentang Semaphore and Shared Memory untuk informasi lebih lanjut.


--with-xml

--with-xml

Kompilasi dengan mendukung non-validating XML parser menggunakan expat library James Clark's. Lihat referensi fungsi XML untuk detailnya.


--enable-maintainer-mode

--enable-maintainer-mode

Mengaktifkan peringatan terhadap extra dependencies dan compiler yang digunakan oleh beberapa pengembang PHP.

 

--with-system-regex

--with-system-regex

Mengaktifkan regular expression library sistem, bukan lagi regular expression yang sudah ada dalam paket. Jika anda membuat PHP sebagai modul server, anda harus menggunakan library yang sama ketika PHP dibuat dengan ketika berhubungan ke server. Aktifkan option ini hanya jika anda memebutuhkan fitur tertentu pada library sistem. Direkomendasikan jika anda hanya menggunakan library yang sudah ada dalam paket sebisa mungkin.


--with-config-file-path

--with-config-file-path=DIR

Yaitu direktori yang akan digunakan untuk mencari file konfigurasi ketika PHP mulai berjalan.


--with-exec-dir

--with-exec-dir=DIR

Pada mode safe, hanya file PHP di direktori DIR saja yang dapat dieksekusi. Default-nya di usr/local/bin. Option ini hanya men-set default saja, untuk mengubahnya gunakan direktif safe_mode_exec di file konfigurasi nanti.


--enable-debug

--enable-debug

Mengaktifkan informasi debug tambahan. Dengan ini dimungkinkan untuk mengumpulkan informasi detail ketika ada masalah dengan PHP. (Catatan : ini tidak ada kaitannya dengan fasilitas debugging atau informasi yang tersedia pada skrip PHP).


--enable-safe-mode

--enable-safe-mode

Mengaktifkan 'safe mode' secara default. Dalam mode ini PHP dibatasi kemampuannya pada hal-hal tertentu saja, seperti hanya dapat membaca file pada document root. Baca bab seputar keamanan untuk lengkapnya. Pengguna CGI (PHP dikonfigurasi sebagai modul CGI) harus selalu mengaktifkan mode secure. Option ini hanya mengeset default-nya, jadi bisa saja untuk diaktifkan atau di-nonaktif-kan dengan sub bab safe mode di file konfigurasi nantinya.


--enable-track-vars

--enable-track-vars

Membuat PHP mengenali dari mana variable hasil GET/POST/cookie berasal yang disimpan di array HTTP_GET_VARS, HTTP_POST_VARS dan HTTP_COOKIE_VARS. Option ini hanya mengeset default-nya, yang dapat diaktifkan atau di-nonaktif-kan dengan track_vars di file konfigurasi nantinya.


--enable-magic-quotes

--enable-magic-quotes

Mengaktifkan magic quotes secara default. Option ini hanya mengeset default-nya, yang dapat diaktifkan atau di-nonaktif-kan dengan magic_quotes_runtime di bab file konfigurasi nantinya. Lihat juga sub bab magic_quotes_gpc dan magic_quotes_sybase.


--enable-debugger

--enable-debugger

Mengaktifkan dukungan debugger PHP internal. Fitur ini masih dalam eksperimen. Lihat juga sub bab konfigurasi Debugger di file konfigurasi.


--enable-discard-path

--enable-discard-path

Jika ini diaktifkan maka PHP CGI binary dapat disimpan secara aman di luar direktori web tanpa seorangpun dapat mengganggu keamanan .htaccess. Baca bab mengenai keamanan untuk mengetahui lebih jauh option ini.


--enable-bcmath

--enable-bcmath

Mengaktifkan style bc pada fungsi matematik presisi. Lihat juga option bcmath.scale pada file konfigurasi.


--enable-force-cgi-redirect

--enable-force-cgi-redirect

Mengaktifkan security check untuk server redirect internal. Anda harus menggunakan ini jika anda bekerja menggunakan PHP versi CGI dengan Apache.

Ketika menggunakan PHP sebagai CGI binary, PHP secara default memeriksa untuk memastikan dipakai menggunakan redirection (misalnya pada Apache menggunakan Action directives). Hal ini menjamin PHP binary tidak dapat digunakan untuk melakukan bypass terhadap standar autentikasi pada web server dengan memanggilnya secara langsung, seperti misalnya http://my.host/cgi-bin/php/secret/doc.html. Pada contoh ini kita dapat mengakses http://my.host/secret/doc.html tanpa melalui setting sekuriti yang dibuat oleh httpd untuk direktoti /secret. Namun dengan mengaktifkan option di atas, maka hal ini tidak bisa dilakukan.

Tidak mengaktifkan option ini memungkinkan bypass terhadap sekuriti httpd dan setting autentikasi. Gunakan option ini jika server anda tidak mampu mengidentifikasikan safe redirection dan semua file anda berada pada document root serta direktori user dapat diakses oleh siapa saja.

Baca bab tentang security untuk option ini.

--disable-short-tags

--disable-short-tags

Mendisaktifkan tags PHP bentuk sederhana <? ?>. Anda harus melakukan ini jika ingin menggunakan PHP dengan XML. Dengan men-disable tags bentuk ini, hanya <?php ?> yang dikenali sebagai tags kode PHP. Option ini hanya mengeset default-nya, yang dapat diaktifkan atau di-nonaktif-kan dengan menggunakan short_open_tag di file konfigurasi nantinya.


--enable-url-includes

--enable-url-includes

Memungkinkan untuk menjalankan kode dari server HTTP atau FTP lain langsung dari PHP menggunakan include(). Lihat juga option include_path pada file konfigurasi.


--disable-syntax-hl

--disable-syntax-hl

Mematikan fasilitas syntax highlighting.

CPPFLAGS dan LDFLAGS

Agar instalasi PHP dapat melihat header atau library di direktori berbeda, ubah masing-masing variabel CPPFLAGS dan LDFLAGS. Jika anda menggunakan shell, anda bisa melakukannya dengan LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure.

 

Building

Setelah PHP sudah dikonfigurasi (dengan cara di atas), anda telah siap untuk mengeksekusi CGI atau library PHP. Perintah make akan mengurus ini semua. Jika ini gagal, lihat subbab Masalah.

Testing

Jika anda telah membuat PHP sebagai program CGI, anda dapat mengetest-nya dengan mengetik make test. Adalah ide bagus jika anda mengetest terlebih dahulu hasil instalasi anda. Dengan begini anda dapat mengetahui masalah PHP anda pada platform yang anda gunakan lebih awal daripada bersusah-susah nantinya.

Benchmarking

Jika anda telah membuat PHP sebagai program CGI, anda dapat melakukan benchmark hasil instalasi dengan mengetik make bench. Perhatikan ! jika anda dalam 'safe mode' secara default, proses benchmarking tidak akan pernah selesai jika prosesnya lebih lama dari 30 detik yang diperbolehkan. Ini karena set_time_limit() tidak dapat digunakan pada safe mode. Gunakan konfigurasi max_execution_time untuk mengontrol waktu pada skrip anda. make bench mengabaikan file konfigurasi.