Pengertian PHP
PHP merupakan singkatan dari "PHP: Hypertext
Preprocessor", adalah sebuah bahasa scripting yang terpasang pada HTML.
Sebagian besar sintaks mirip dengan bahasa C, Java dan Perl, ditambah beberapa
fungsi PHP yang spesifik. Tujuan utama bahasa ini adalah untuk memungkinkan
perancang web menulis halaman web dinamik dengan cepat.
Hubungan PHP dengan HTML
Halaman web
biasanya disusun dari kode-kode html yang disimpan dalam sebuah file
berekstensi .html. File html ini dikirimkan oleh server (atau file) ke browser,
kemudian browser menerjemahkan kode-kode tersebut sehingga menghasilkan suatu
tampilan yang indah. Lain halnya dengan program php, program ini harus
diterjemahkan oleh web-server sehingga menghasilkan kode html yang dikirim ke
browser agar dapat ditampilkan. Program ini dapat berdiri sendiri ataupun
disisipkan di antara kode-kode html sehingga dapat langsung ditampilkan bersama
dengan kode-kode html tersebut. Program php dapat ditambahkan dengan mengapit
program tersebut di antara tanda <? dan ?>. Tanda-tanda tersebut biasanya
disebut tanda untuk escaping (kabur)
dari kode html. File html yang telah dibubuhi program php harus diganti
ekstensi-nya menjadi .php atau .php3.
PHP merupakan
bahasa pemograman web yang bersifat server-side HTML=embedded scripting,
di mana script-nya menyatu dengan HTML dan berada si server. Artinya adalah
sintaks dan perintah-perintah yang kita berikan akan sepenuhnya dijalankan di
server tetapi disertakan HTML biasa. PHP dikenal sebgai bahasa scripting yang
menyatu dengan tag HTML, dieksekusi di server dan digunakan untuk membuat
halaman web yang dinamis seperti ASP (active Server Pages) dan JSP (Java Server
Pages).
PHP pertama kali
dibuat oleh Rasmus Lerdroft, seorang programmer C. Semula PHP digunakannya
untuk menghitung jumlah pengunjung di dalam webnya. Kemudian ia mengeluarkan Personal
Home Page Tools versi 1.0 secara gratis. Versi ini pertama kali keluar pada
tahun 1995. Isinya adalah sekumpulan script PERL yang dibuatnya untuk membuat halaman
webnya menjadi dinamis. Kemudian pada tahun1996 ia mengeluarkan PHP versi 2.0
yang kemampuannya telah mampu mengakses database dan dapat terintegrasi dengan
HTML.
Pada tahun 1998
tepatnya pada tanggal 6 Juni 1998 keluarlah PHP versi 3.0 yang dikeluarkan oleh
Rasmus sendiri bersama kelompok pengembang softwarenya..
Versi teranyar
yaitu PHP 4.0 keluar pada tanggal 22 Mei 2000 merupakan versi yang lebih
lengkap lagi dibandingkan dengan versi sebelumnya. Perubahan yang paling
mendasar pada PHP 4.0 adalah terintegrasinya Zend Engine yang dibuat oleh Zend
Suraski dan Andi Gutmans yang merupakan penyempurnaan dari PHP3 scripting
engine. Yang lainnya adalah build in HTTP session, tidak lagi menggunakan
library tambahan seperti pada PHP3. Tujuan
dari bahasa scripting ini adalah untuk membuat aplikasi-aplikasi yang
dijalankan di atas teknologi web. Dalam hal ini, aplikasi pada umumnya akan
memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan
dijalankan web server.
Kelebihan PHP
Ketika
e-commerce semakin berkembang, situs-situs yang statispun semakin ditinggalkan
Karena dianggap sudah tidak memenuhi keinginan pasar karena situs tersebut
harus tetap dinamis selama setiap hari. Pada saat ini bahasa PERL dan CGI sudah
jauh ketinggalan jaman sehingga sebagian besar designer
web banyak beralih ke bahasa server-side
scripting yang lebih dinamis seperti PHP.
Seluruh aplikasi berbasis web dapat dibuat
dengan PHP. Namun kekuatan yang paling utama PHP adalah pada konektivitasnya
dengan system database di dalam web. Sistem database yang dapat didukung oleh
PHP adalah :
- Oracle
- MySQL
- Sybase
- PostgreSQL
- dan lainnya
PHP dapat
berjalan di berbagai system operasi seperti windows 98/NT, UNIX/LINUX, solaris
maupun macintosh.
PHP merupakan
software yang open source yang dapat anda download secara gratis dari
situs resminya yaitu http://www.php.net,
ataupun dari situs-situs yang menyediakan software tersebut seperti di ftp://gerbang.che.itb.ac.id.
Software ini juga
dapat berjalan pada web server seperti PWS (Personal Web Server), Apache, IIS,
AOLServer, fhttpd, phttpd dan sebagainya. PHP juga merupakan bahasa pemograman
yang dapat kita kembangkan sendiri seperti menambah fungsi-fungsi baru.
Keunggulan
lainnya dari PHP adalah PHP juga mendukung komunikasi dengan layanan seperti
protocol IMAP, SNMP, NNTP, POP3 bahkan HTTP.
PHP dapat diinstal
sebagai bagian atau modul dari apache web server atau sebagai CGI script yang
mandiri. Banyak keuntungan yang dapat diperoleh jika menggunakan PHP sebagai
modul dari apache di antaranya adalah :
- Tingkat keamanan yang cukup tinggi
- waktu eksekusi yang lebih cepat dibandingkan dengan bahasa pemograman web lainnya yang berorientasi pada server-side scripting.
- Akses ke system database yang lebih fleksibel. seperti MySQL.
Dalam modul ini kita akan
mempelajari PHP sebagai server-side scripting yang menggunakan apache sebagai
webserver. Versi PHP yang kita gunakan adalah PHP4 untuk windows.
INSTALASI WEBSERVER
Pendahuluan
Web server merupakan server internet yang mampu melayani
koneksi transfer data dalam protocol HTTP. Web server merupakan hal yang
terpenting dari server di internet dibandingkan server lainnya seperti e-mail
server, ftp server ataupun news server. Hal ini di sebabkan web server telah
dirancang untuk dapat melayani beragam jenis data, dari text sampai grafis 3
dimensi. Kemampuan ini telah menyebabkan berbagai institusi seperti universitas
maupun perusahaan dapat menerima kehadirannya dan juga sekaligus menggunakannya
sebagai sarana di internet.
Web server juga
dapat menggabungkan dengan dunia mobile wireless internet atau yang sering di
sebut sebagai WAP (wireless Access Protocol) yang banyak digunakan sebagai
sarana handphone yang memiliki fitur WAP. Dalam kondisi ini, webserver tidak
lagi melayani data file HTML tetapi telah melayani WML (wireless Markup
Language)
Salah satu software yang biasa digunakan oleh banyak web
master di dunia adalah apache. Software tersebut dapat kita download secara
gratis dari web resmi apache yaitu http://www.apache.org.
Apache merupakan software open source yang sekarang ini sudah merebut
pasar dunia lebih dari 50%. Web server ini fleksibel terhadap berbagai system
operasi seperti windows9x/NT ataupun unix/linux. Dalam penggunaanya.
Apache merupakan turunan dari webserver yang dikeluarkan
oleh NCSA yaitu NCSA HTTPd pada sekitar tahun 1995.
Kelebihan web server Apache :
- Freeware (software gratisan)
- Mudah diinstall.
- Mampu beroperasi pada berbagai platform sistem operasi .
- Mudah mengonfigurasinya.
- Apache Web server mudah dalam menambahkan periferal lainnya ke dalam platform web servernya, misalnya : untuk menambahkan modul, cukup hanya menset file konfigurasinya agar mengikutsertakan modul itu kedalam kumpulan modul lain yang sudah dioperasikan.
- Dapat dijadikan pengganti bagi NCSA web server.
- Perbaikan terhadap kerusakan dan error pada NCSA 1.3 dan 1.4
- Merespon client ebih cepat daripada server NCSA.
- Mampu di kompilasi sesuai dengan spesifikasi HTTP yang sekarang.
- Menyediakan feature untuk multihomed dan virtual server.
- Kita dapat men-set respon error yang akan dikirim web server dengan menggunakan file atau skrip.
- Secara otomatis menjalankan file index.html, halaman utamanya, untuk ditampilkan secara otomatis pada clientnya.
- Lebih aman karena memiliki level-level pengamanan
- Apache mempunyai komponen dasar terbanyak di antara webserver-webserver lain, yang berarti bahwa webserver Apache termasuk salah satu dari webserver yang lengkap.
- Performansi dan konsumsi sumberdaya (resource) dari webserver apache tidak terlalu banyak, hanya seandar 20 MB untuk file-file dasarnya dan setiap daemonnya hanya memerlukan seandar 950 KB memory per-child.
- Mendukung transaksi yang aman (secure transaction) menggunakan SSL (Secure Socket Layer).
- Mempunyai dukungan teknis melalui web.
- Mempunyai kompatibilitas platform yang tinggi.
- Mendukung third party berupa modul-modul tambahan.
Instalasi
Setelah kita
berhasil mendownload dan apache tersebut, maka kita dapat menginstalnya seperti
biasa. Apache yang kita gunakan pada modul ini adalah apache_1_3_12_win32.
Software ini bentuknya application, sehingga kita bisa langsung menginstalnya
seperti software lainnya.
Setelah kita
berhasil menginstalnya, jika kita tidak melakukan perubahan directory ketika
menginstalnya maka software tersebut akan otomatis tersimpan di directory “c:\program
files\Apache Group”.
Agar apache dapat
berjalan dengan baik dan benar, maka kita harus mengedit suatu file yang
berfungsi mengkoordinir dan menghubungkan antara webserver dengan modul PHP
yang telah ada. File tersebut adalah “httpd.conf”. File tersebut berada
di folder “c:\program files\Apache Group\Apache\conf\httpd.conf”.
Isi
file tersebut dan apasaja yang harus di edit agar apache kita dapat menjadi
sebuah web server yang benar akan di jelaskan di bawah ini :
ServerType <standalone|inetd>
Disini anda
menentukan apakah akan mejalankan Apache sebagai http daemon sendiri atau lewat
inetd. Pilihan inetd hanya untuk apache berbasis Unix. Defaultnya adalah
standalone, dengan pilihan ini apache dapat memberikan performanya secara
maksimal. Bila ingin diubah menjadi inetd maka tinggal mengganti baris
standalone menjadi inetd.
ServerRoot “C:/Program Files/Apache
Group/Apache”
Perintah ini
menentukan letak direktori yang berisi semua file-file konfigurasi maupun file
binari (eksekusi) apache. Defaultnya akan menyesuaikan pada saat konfigurasi.
LockFile logs/httpd.lock
Directory untuk
lock file. Defaultnya ia akan bertanda pagar (tidak diaktifkan).
PidFile logs/httpd.pid
File yang
digunakan server untuk meyimpan nomor identifikasi proses (pid) saat apache
dijalankan dan aktif jika menggunakan server type standalone
ScoreBoardFile logs/httpd.scoreboard
File yang
digunakan untuk menyimpan informasi internal dari proses server seperti
komunikasi antar child dan parent process yang mungkin dibutuhkan oleh beberapa
arsitektur computer.
ResourceConfig conf/srm.conf
AccesConfig conf/acces.conf
Pilihan untuk
membaca file srm.conf dan access.conf secara berurutan. Apache secara default
telah memproses kedua file secara berurutan sehingga dapat anda biarkan
keduanya ditandai pagar.
Timeout 300
Jumlah waktu
(dalam detik) yang diberikan server untuk menunggu klien saat mengakses server.
KeepAlive On
Berlaku untuk
server standalone untuk menetukan apakah server memperbolehkan lebih dari satu
permintaan dalam satu koneksi. Untuk non-aktif isikan Off.
MaxKeepAliveRequest 100
Berlaku untuk
server standalone. Menentukan jumlah maksimum permintaan dalam satu koneksi
yang bersamaan. Set 0 jika tidak dibatasi.
KeepAliveTimeOut 20
Berlaku untuk
server standalone yaitu jumlah waktu (dalam detik) untuk menunggu permintaan
berikutnya dari klien yang sama dan koneksi yang bersamaan.
MinSpareServer 5
MaxSpareServer 10
Berlaku untuk
server standalone dan digunakan untuk menentukan minimum atau maksimum spare
(idle) yang digunakan saat koneksi dilakukan.
StartServer 6
Berlaku untuk
server standalone yang menentukan jumlah server yang berjalan ditandai saat
diaktifkan (ditandai dengan jumlah PID).
MaxClients 100
Berlaku untuk
server standalone yang menentukan jumlah maksimal klien yang dapat mengakses
secara simultan.
MaxRequestPerChild 40
Jumlah
permintaan maksimal untuk mempergunakan childprocess. Bila diset 0 maka
childprocess akan akan berlangsung terus dan tidak akan mati.
Listen 12.34.56.78:80
Setting server
untuk melayani port dan atau alamat IP .Hal ini sangat berguna jika anda
memakai satu mesin yang punya beberapa nomor IP dan atau nama DNS samaran.
BindAddress *
Dukungan virtual
hosts dengan memerintahkan apache untuk mengikat beberapa alamat. Bisa diisi
dengan *, alamat IP atau nama domain internet yang memenuhi syarat.
Port 80
Port yang
digunakan oleh server. Standarnya memakai port 80.
User nobody
Group nobody
Nama user dan
group yang menjalankan httpd. Defaultnya adalah user nobody dan group nobody.
ServerAdmin firdaus@tpb.itb.ac.id
Alamat email
untuk mengirimkan/memberitahu halaman yang dibuat secara otomatis oleh server.
Misalnya untuk mengirim pesan error.
ServerName www.firdausadnan.com
Untuk setting nama server anda. dengan menggunakan
standar fqdn (fully quailified domain name) dan harus merupakan nama yang ada
dalam DNS (Domain Name Service) jaringan anda. Jika tidak yakin isikan nomor
IP.
DocumentRoot "C:\wwwroot\html"
Perintah untuk
setting lokasi direktori web yang akan diterbitkan sebagai webpage.
UserDir public_html
Menyatakan letak
direktori homepage bagi masing-masing user pada sistem Unix tempat Webserver
anda di install. Jika perintah ini diset, maka tiap user tinggal membuat
direktori public_html didirektori homenya.
AccessFileName .htaccess
Digunakan untuk
untuk menentukan nama file untuk keperluan control akses direktori.
UseCanonicalName Off
Digunakan untuk
menentukan apakah server akan menggunakan self-referencing URL address atau
tidak. Beberapa klien yang mengakses server memerlukannya namun kebanyakan tidak memerlukan sama sekali. Sebaiknya
di-offkan saja.
DefaultType text/plain
Diguanakn untuk
menentukan tipe content default apabila server gagal menentukan tipe MIME
tertentu.
HostnameLookups Off
Digunakan untuk
menentukan apakah DNS akan selalu dilihat apabila klien mengakses server.
ErrorLog logs/error_log
Digunakan untuk
menetukan nama file yang digunakan untuk mencatat semua error yang terjadi
selama operasional.
LogLevel warn
Digunakan untuk
menentukan level log yang akan dismpan pada file yang telah ditentukan oelh
ErrorLog. Optionnya cukup banyak <emerg|alert|crit|errors|warn|debug>.
Semakin tinggi level yang ditentukan semakin banyak pesan yang dapat dibaca
pada file log, hanya saja kerja server akan menurun.
LogFormat "%h %l %u %t \"%r\" %>s %b
\"%{Referer}i\" \"%{User-Agent}i\"" combine
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Digunakan untuk
mendefinisikan format yang akan digunakan oleh log file. Defaultnya seperti
sintak di atas.
Berikut
dijelaskan sedikit mengenai formatnya :
o
%h = remot host
o
%l = remote Logname
o
%u = remote user
o
%t = Time
o
%r = First Line Of Request.
o
%s = Status. Menunjukkan status
terakhir dari request.
o
%b = Jumlah Byte yang dikirim client, dalam format CLF (“-“ bila tidak
ada byte yang dikirim).
o
%{Referer}I = Isi dari Tag Referer pada Header
o
%{User-Agent}I = Isi dari Tag User-Agent pada Header.
o
%U = URL yang diminta (direquest)
o
combined, common, referer dan
agent yang tertulis pada bagian belakang directive adalah nickname untuk
memudahkan proses pemanggilan oleh directive CustomLog.
Alias /icons/ "C:/Program Files/Apache Group/Apache/icons/"
Digunakan untuk menentukan alias dari suatu direktori. Misalnya
direktori "C:/Program Files/Apache Group/Apache/icons/"
hanya menjadi
/icons/ saja.
IndexOptions FancyIndexing
Digunakan untuk
menentukan letak direktori index yang akan mengelompokkan file-file tertentu
yang sejenis.
AddIcon /icons/tar.gif .tar
Digunakan
menentukan nama icon serta extensionnya. Sintaknya :
AddIcon <icon-name> <extension>
AddIconByEncoding
(CMP,/icons/compressed.gif) x-compress x-gzip
Digunakan untuk
menentukan nama icon untuk keperluan MIME_Encoding. Sintaknya :
AddIconByEncoding <icon> <MIME-type>
AddIconByType (TXT,/icons/text.gif)
text/*
Digunakan untuk
menentukan nama icon untuk keperluan FancyIndexing.
ReadmeName README
HeaderName
HEADER
Digunakan untuk
menentukan file yang berfungsi sebagai footer dan header.
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
Digunakan untuk
keperluan MIME encoding. Sebaiknya dibiarkan apa adanya.
AddLanguage en .en
AddLanguage et .ee
AddLanguage fr .fr
Digunakan untuk
menentukan language-MIME encoding dengan file extension yang digunakan.
AddType <content-type> <extension>
Digunakan untuk
menambahkan module-module yang digunakan dalam server apache. Misalnya untuk
mengaktifkan (meload) modul php maka ditambahkan :
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
LoadModule php4_module
c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php4
ScriptAlias /php4/ "C:/php/"
Action application/x-httpd-php4
"/php4/php.exe"
AddType application/x-httpd-php4 .php
.php3 .phtml
AddType application/x-tar .tgz
nice..
BalasHapusMy blog
bagus om lanjutkan
BalasHapusbagus sekali
BalasHapusMy blog
thank you for information
BalasHapusMy blog
Terimakasih
BalasHapusgood artikel
BalasHapusMy blog
good artikel
BalasHapusMy blog
Penjelasan nya cukup panjang dan membuat saya lebih sedikit mengerti lagi dengan belajar php terimakasih buat artikel nya gan dan bermanfaat bagi saya yg pemula
BalasHapusterima kasih.
BalasHapusGood artikel... thanks
BalasHapustulisanya sangat bermanfaat
BalasHapusmy blog
my campus