:: Instalasi PHP, MySQL, Apache
Apache merupakan webserver yang paling banyak digunakan saat ini .
menurut survey netcraft, apache digunakan pada lebih dari 62 %
webserver di internet. Hal ini disebabkan oleh beberapa sebab , di
antaranya adalah karena sifatnya yang opensource dan mudahnya
mengkostumisasikannya . diantaranya dengan menambahkan support secure
protocol melalui ssl dan konektifitasnya dengan database server melalui
bahasa scripting PHP .
catatan : sebenarnya php dapat diinstall pada berbagai macam webserver
,tetapi dipercaya memiliki kemampuan \’lebih\’ pada webserver apache.
Asumsi
Anda telah paham perintah-perintah dasar *NIX.
Anda memiliki paket development yang cukup untuk melakukan kompilasi ini.
paket-paket itu antara lain:
ANSI-C Compiler , gcc / egcs
GNU make
bison
perl 5
gzip
Persiapan
Sebelum melakukan instalasi , tentu saja kita membutuhkan file-file
yang akan diinstall . pada saat artikel ini ditulis , stable version
terakhir (pada saat artikel ini diupdate) dari file-file yang
diperlukan adalah :
Apache — http://www.apache.org/dist/apache_1.3.26.tar.gz
Mod_SSL — http://www.modssl.org/source/mod_ssl-2.8.10-1.3.26.tar.gz
OpenSSL — http://www.openssl.org/source/openssl-0.9.6g.tar.gz
MySQL — http://www.mysql.com/Downloads/MySQL-3.23/mysql-3.23.52.tar.gz
PHP — http://www.php.net/distributions/php-4.2.3.tar.gz
Untuk kemudahan , semua file itu didownload dalam satu direktori
temporer , dengan menggunakan user \’root\’ demi menghindari masalah
permission . disini kami menggunakan direktori /tmp/download . anda
bisa menempatkannya di direktori manapun sesuai keinginan anda .
Rencana
Pertama kali , kita akan melakukan instalasi MySQL dan memastikannya
bekerja . kemudian melakukan instalasi PHP , dan modssl . Dan terakhir
memastikan semuanya berjalan dengan baik . Perlu di catat bahwa :
/usr/local/apache
/usr/local/mysql
/usr/local/ssl
adalah direktori dimana kami menginstal Apache, MySQL, dan OpenSSL
.Anda dapat merubah direktori itu dengan menambahkan \”prefix\” pada
saat konfigurasi .
Keterangan: Warna hijau menunjukan output yang keluar dari sistem ,
sedangkan warna merah merupakan variabel yang mungkin berbeda pada
mesin anda !
MySQL
Mengekstrak file tarball mysql , dan melakukan \’configure\’ di dalam direktory hasil ekstrak
# cd /tmp/download/
# tar -zxvf mysql-3.23.52.tar.gz
# cd mysql-3.23.52
# ./configure –prefix=/usr/local/mysql –with-segala-optionnya
Melakukan kompilasi untuk membentuk binary mysql , dan menginstall nya pada direktori yang kita kehendaki
# make
# make install
Membuat tabel-tabel dasar mysql , dan menjalankan MySQL daemon :
# scripts/mysql_install_db
# cd /usr/local/mysql/bin
# ./safe_mysqld &
Merubah password admin mysql , secara default root MySQL tidak memiliki password , hal yang sangat berbahaya .
# ./mysqladmin -u root password \’PaSSwOrdBarU\’
Memeriksa hasil instalasi mysql
Pada saat instalasi tadi , telah terbentuk dua buah database pada mysql
anda. Yaitu database mysql yang berisi data-data yang mengontrol
database, user, password , database permission, dan hal-hal utama lain.
Serta database test . Pada artikel kali ini kita akan berlatih pula
membuat database , yang disini diberi nama test2
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1 to server version: 3.23.52
Type \’help\’ for help.
mysql> show databases;
+ —————– +
| Database |
+ —————– +
| mysql |
| test |
+ —————– +
2 rows in set (0.00 sec)
mysql> create database test2;
Query OK,
1 row affected (0.02 sec)
Memasuki database test2 , kemudia membentuk tabel baru bernama books,
dengan fields : fields 1 bernama \’id\’ , berupa integer dengan panjang
maksimal 3. fields 2 bernama \’name\’ berupa karakter dengan panjang
maksimal 50. Dengan id sebagai kunci utama untuk dasar pencarian dan
indexing .
CATATAN : perintah-perintah MySQL tidak \’case sensitive\’ seperti
halnya perintah-perintah *nix . sehingga CREATE dan cReAtE merupakan
perintah yang sama .
mysql> use test2;
Database changed
mysql> CREATE TABLE books (
-> id int(3) not null auto_increment,
-> name char(50) not null,
-> unique(id),
-> primary key(id)
-> );
Query OK, 0 rows affected (0.00 sec)
Memeriksa tabel hasil buatan kita.
mysql> show tables;
+—————–+
| Tables_in_test2 |
+—————–+
| books |
+—————–+
1 row in set (0.00 sec)
mysql> describe books;
+——-+———-+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+——-+———-+——+—–+———+—————-+
| id | int(3) | | PRI | NULL | auto_increment |
| name | char(50) | | | | |
+——-+———-+——+—–+———+—————-+
2 rows in set (0.00 sec)
Sekarang menambahkan data berupa dua buah judul buku , yaitu \’PHP 4
Newbies\’ dan \’RedHat Linux 6 Server\’ pada tabel \’books\’.
mysql> INSERT INTO books (name) values(\’PHP 4 Newbies\’);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO books (name) values(\’RedHat Linux 6 Server\’);
Query OK, 1 row affected (0.00 sec)
Kita bisa melihat hasilnya dengan command \’select\’
mysql> SELECT * from books;
+—-+————————————–+
| id | name |
+—-+————————————–+
| 1 | PHP 4 Newbies |
| 2 | Red Hat Linux 6 Server |
+—-+————————————–+
2 rows in set (0.00 sec)
Adanya penambahan angka di fields id di atas secara otomatis merupakan hasil dari pembuatan fields dengan \’auto_increment\’.
Anda bisa menghapus data dengan perintah \’delete\’
mysql> delete from books where id=1;
Query OK, 1 row affected (0.00 sec)
mysql> select * from books;
+—-+———————————–+
| id | name |
+—-+———————————–+
| 2 | Red Hat Linux 6 Server |
+—-+———————————–+
1 row in set (0.00 sec)
Cukup permainan dengan mysql , kita lanjutkan dengan yang lainnya .
PHP
Untuk melakukan instalasi PHP , anda membutuhkan source apache yang
sudah di \’configure\’ . karena itu , kita persiapkan dulu source
apachenya .
# cd /tmp/download
# tar -zxvf apache_1.3.26.tar.gz
# cd apache_1.3.26
# ./configure
Cukup . biarkan apache sampai disini . instalasi apache akan dilakukan nanti setelah semuanya beres .
# cd ..
# tar -zxvf php-4.2.3.tar.gz
# cd php-4.2.3
Melakukan \’configure\’ pada php . ingatlah untuk selalu melihat
./configure –help setiap kali melakukan kompilasi untuk melihat
option-option yang mungkin akan anda kehendaki ( seperti support imap ,
mcrypt ,mcal , dan masih banyak lagi ). instalasi seperti tertulis di
sini hanya melibatkan apache dan mysql .
# ./configure –with-mysql=/usr/local/mysql
> –with-xml
> –with-apache=../apache_1.3.26
> –enable-track-vars
# make
# make install
Kemudian copy file php.ini-dist menuju /usr/local/lib. Secara default,
php akan membaca file konfigurasi pada dir ini kecuali anda beri option
–with-config-file-path=/dir pada saat instalasi :
# cp php.ini-dist /usr/local/lib/php.ini
OpenSSL
# cd ..
# tar -zxvf openssl-0.9.6g.tar.gz
# cd openssl-0.9.6g
#./config shared –prefix=/usr/local/ssl –openssldir=/usr/local/ssl/openssl
# make
# make test
# make install
mod_ssl
# cd ..
# tar -zxvf mod_ssl-2.8.10-1.3.26.tar.gz
# cd mod_ssl-2.8.10-1.3.26
# ./configure –with-apache=../apache_1.3.26 –with-ssl=/usr/local/ssl
Apache
# cd ../apache_1.3.26
# ./configure
> –enable-module=ssl
> –activate-module=src/modules/php4/libphp4.a
> –enable-module=php4
[...ditambah semua option yang anda inginkan...]
# make
Sekarang anda dapat membuat sertifikat ssl anda sendiri. Dengan option
custom, Anda akan menjumpai pertanyaan-pertanyaan untuk keperluan
sertifikat \’sementara\’ ini, sertifikat ini sudah cukup memadai untuk
keperluan enkripsi . tapi jika anda ingin membuat usaha e-commerce ,
anda memerlukan sertifikat yang dibuat oleh perusahaan semacam Verisign
(http://www.verisign.com).
# make certificate TYPE=custom
Dan akhirnya , menginstall apache .
# make install
Saatnya untuk mengedit httpd.conf untuk mengaktifkan fungsi php pada
apache kita . pada prefix ini , file httpd.conf akan ditemukan pada
/usr/local/apache/conf/ Jika anda memakai prefix anda sendiri,
seharusnya anda tau lokasinya
cari bagian dari httpd.conf seperti
dibawah ini . ( bagian .php3 ditambahkan sendiri untuk kompabilitas
backward dengan php3, anda juga dapat menambahkan extensi lain yang
anda inginkan ).
>
> # And for PHP 4.x, use:
> #
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps
>
Test hasil instalas
Pertama kita lakukan test apache tanpa menghidupkan support ssl :
# cd /usr/local/apache/bin
# ./apachectl configtest
Syntax OK
# ./apachectl start
./apachectl start: httpd started
Buka browser anda , dan test dengan membuka http://localhost/ atau
http://127.0.0.1/, atau dengan ip/host komputer anda jika berhasil anda
akan mendapatkan browser memperlihatkan halaman test apache yang
berisikan \”selamat atas berhasilnya instalasi apache anda\”. anda bisa
merubah tampilan\’situs\’ anda ini dengan mengganti file di
/usr/local/apache/htdocs, atau dimanapun root document anda , bisa
diliat pada httpd.conf bagian DocumentRoot.
Buat satu file pada tempat yang terjangkau pada web, dengan ekstensi
PHP yang telah anda \’daftarkan\’ pada httpd.conf sebagai file yang
akan ditangani mod_php , yang berisi :
Hal ini bisa dilakukan dengan perintah sederhana
# echo \”\” > /usr/local/apache/htdocs/test.php
dan arahkan browser anda pada http://localhost/test.php. Jika berhasil
, anda akan mendapatkan halaman berisi data-data tentang system , php
beserta semua \’kemampuannya\’ ( pastikan mysql ada disana ), dan
tentang apache anda . Jika hasilnya tidak demikian , anda diizinkan
mengulang lagi bacaan ini dari atas
.
Kemudian matikan apache anda dan hidupkan kembali dengan mengaktifkan ssl.
# /usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl stop: httpd stopped
# /usr/local/apache/bin/apachectl startssl
/usr/local/apache/bin/apachectl startssl: httpd started
Untuk melihat keberhasilan instalasi ssl ini , arahkan kembali browser
anda pada ip/host anda dengan merubah protokol menjadi https,
https://localhost/. Jika anda menggunakan netscape, netscape akan
mengeluarkan dialog box yang berisi peringatan bahwa anda menuju
halaman secure dengan sertifikat yang tidak dikenal. Secara default ,
netscape hanya mengenali sertifikat yang dikeluarkan oleh perusahaan
resmi semacam VeriSign atau Thawte. Kenalkanlah netscape dengan
sertifikat buatan anda sendiri jika anda menghendakinya .
Tambahan :
Menghidupkan dan merestart apache dengan ssl diaktikan akan berbeda
dengan dengan tidak mengaktifkannya . Anda akan dihadapkan pada suatu
prompt yang meminta passphrase yang anda tulis pada saat membuat
sertifikat. Hal ini dikarenakan file server.key yang terenskripsi untuk
alasan keamanan. Jika anda tidak menghendaki hal ini, karena cukup
merepotkan jika harus selalu menulis passphrase saat startup dan
menyebabkan apache tidak bisa di hidupkan dengan support ssl secara
otomatis pada saat anda melakukan rebooting mesin , anda bisa melakukan
dekripsi file server.key .
# cd /usr/local/apache/conf/ssl.key
# mv server.key server.key.asli
# /usr/local/ssl/bin/openssl rsa -in server.key.asli -out server.key
Pastikan server.key baru anda yang sudah tidak terenkripsi ini tetap aman
# chmod 400 server.key
Anda bisa merestart kembali apache anda dengan option startssl, tanpa perlu menulis passphrase lagi.
Konektifitas PHP dan MySQL
Kita akan melihat konektifitas php-mysql dengan membuat skrip php yang
akan memanggil database mysql . Dibawah ini adalah contoh skrip
sederhana untuk memeriksa hal terse
Hal yang sama juga bisa anda dapatkan dengan menggabungkan tag-tag php dengan html biasa .
Jika anda membuka skrip ini lewat browser anda , akan didapatkan tabel serupa ini :