Web Server Dengan Apache, MySQl, PHP, OpenSSL, PhpMyAdmin ITB
Web Server Dengan Apache, MySQl, PHP, OpenSSL, PhpMyAdmin ITB
OpenSSL, phpMyAdmin
Web Server dengan FreeBSD, Apache, MySQL, dan PHP
Pertama-tama kita mulai dengan mengintstall ketiga aplikasi diatas ke FreeBSD kita. Saya
memilih menggunakan ports untuk melakukan proses instalasi ini. Yang perlu diperhatikan
dalam proses instalasi ini adalah urutan dari aplikasi yang diinstall.
Yang penting Apache harus diinstal sebelum PHP, karena apabila kita menginstall PHP dahulu,
maka ada konfigurasi tambahan yang harus dilakukan pada Apache nantinya. Urutan MySQL
tidak menjadi masalah.
Kemudian apabila kita hendak menginstall menggunakan ports, ada baiknya kita melakukan
konfigurasi make.conf seperti yang sudah saya tulis sebelumnya. Lebih baik lagi bila kita
mengupdate ports collection kita dengan cvsup.
Apabila kedua hal diatas sudah dilakukan, yang perlu kita lakukan tinggal pergi ke direktori
dimana ports yang kita inginkan berada, yaitu pertama-tama kita coba install MySQL.
cd /usr/ports/
make search name=mysql
diketahui MySQL versi terbaru pada OS kita dalah mysql51 dan berada pada direktori
/usr/port/databases/mysql51-server
cd /usr/ports/databases/mysql51-server
make install clean
Setelah proses instalasi yang panjang selesai, lakukanlah setting user untuk mysql, caranya :
–> ganti dengan password pilihan anda, password ini bisa tidak sama dengan password root
anda.
mysql -u root -p
tekan enter kemudian masukkan password yang telah diset sebelumnya. Apabila anda sudah
berada pada mysql server, maka akan terlihat awalan CLI anda berubah jadi :
mysql>
Untuk membuat database, gunakan perintah berikkut setelah masuk ke mysql server.
Oke, MySQL sudah terinstal, selanjutnya kita akan melakukan instalasi Apache. Dengan
proses yang sama, pergilah ke direktori tempat Apache berada.
cd /usr/ports/www/apache22
make install clean
Lagi lagi setelah proses instalasi yang lumayan lama kita harus melakukan konfigurasi
terhadap Apache supaya berjalan dengan baik, caranya editlah file
/usr/local/etc/apache22/httpd.conf
Carilah baris-baris berikut pada httpd.conf, dan ganti seperti dibawah ini :
Listen ipaddres:port
Listen 167.205.79.158:80
Berguna supaya Apache hanya listen pada port dan IP yang disebutkan, apabila ingin
menggunakan port lain, gunakanlah port dalam range 1024 dan 65535 yang belum
digunakan oleh servis lain.
User www
Group www
Berguna untuk meminimalisir celah keamanan, karena apabila Apache dijalankan oleh root,
maka akan sangat berbahaya, karena priviledges yang dimiliki oleh root.
ServerName 167.205.79.158:80
Berguna apabila kita memiliki DNS server yang berfungsi dengan baik, apabila tidak
ada,maka di comment saja, atau cukup isikan IP address server kita.
ServerAdmin [email protected]
Kemana e-mail harus dikirimkan apabila ada masalah dengan web server kita.
DocumentRoot “/usr/local/www/data”
Secara default, semua dokumen yang akan ditampilkan oleh web server kita haruslah
diletakkan disini, tetapi bisa saja menggunakan simbolic link. Karena apache22 berbeda
dengan versi sebelumnya dalam penempatan document root yang berada pada
/usr/local/www/apache22/data maka kita harus menyesuaikannya.
Apabila ada user yang hendak mengakses web server kita, maka yang akan ditampilkan
adalah konten yang terdapat pada file-file diatas, yang tentunya harus berada pada direktori
yang sama dengan DocumentRoot.
Demikianlah konfigurasi minimum yang saya lakukan untuk web server saya, apabila anda
mengikutinya dan ingin mengetesnya, buka saja browser dan masukkan IP address server
anda, maka akan keluar tulisan standard yang ada pada index.html, yaitu : It Works!
Selanjutnya tinggal instalasi PHP supaya web server kita bisa menjalankan script-script PHP.
Instalasinya sama saja dengan MySQL dan Apache :
cd /usr/ports/lang/php5
make config –> centang opsi Apache
make install clean
Karena pada dasarnya php termasuk suatu modul pada Apache, maka apabila kita ingin
Apache kita bisa menjalankan script PHP, setelah diinstal kita harus mengatur konfigurasi
pada Apache supaya me-load PHP. Masukkan baris ini pada httpd.conf :
Nah, bila kita sudah menginstal Apache terlebih dahulu, maka kita tidak perlu melakukan hal
ini lagi ^__^.
Kemudian kita juga perlu merubah settingan berikut ini pada httpd.conf :
Ini dimaksudkan supaya Apache bisa menampilkan halaman awal berformat PHP (index.php)
bila ada.
cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
File konfigurasi untuk PHP sendiri harus berada dalam format php.ini, tetapi tidak perlu
dirubah2, karena sudah cukup bagus.
apachectl restart
Untuk mengetes php, kita buat file pada /usr/local/www/data yang bernama tes.php
kemudian isikan dengan syntax php berikut ini :
Bila PHP sudah terinstall dengan baik, maka bila kita buka browser kita dan
ketikkan http://domainserveranda.com/tes.php maka akan tampil informasi tentang server
kita. Tetapi apabila PHP belum terinstall dengan baik, maka yang akan tampil hanya script
yang kita tuliskan tadi. Apabila hal ini terjadi, maka cek ulang konfigurasi apache yang telah
dilakukan, atau install ulang saja PHP nya ^__^
* virtual hosts *
Ketika kita menyediakan sebuah mesin (web server) untuk tempat hosting. Terkadang ada
saatnya kita harus menyediakan tempat untuk lebih dari satu website yang akan diletakkan
di web server kita. Sebagian besar permasalahan virtual hosts ini sangat erat hubungannya
dengan domain name dari website yang ada di web server kita.
Ada dua kemungkinan yang menyebabkan virtual hosts dibutuhkan, yang pertama kita ingin
mengubah domain dari webserver kita, karena domain kita yang lama telah habis masa
berlakunya, atau karena alasan lain. Yang kedua bila kita menyediakan tempat untuk hosting
dari banyak pihak di web server kita, dimana tiap pihak ingin memiliki domain name yang
berbeda-beda.
Misalkan saja, ada 3 departemen dalam kantor kita yang ingin hosting website di web server
kita, sebut saja departemen SDM, Maintenance, dan SarPras.
Untuk mengaplikasikan hal ini kita tinggal menambahkan beberapa baris saja di
file httpd.conf kita, seperti :
NameVirtualHost 167.205.79.158
<VirtualHost 167.205.79.158>
DocumentRoot /usr/local/www/data/sdm
ServerName sdm.comlabs.itb.ac.id
ErrorLog /var/log/freebsddiary-error.log
TransferLog /var/log/freebsddiary-access.log
</VirtualHost>
<VirtualHost 167.205.79.158>
DocumentRoot /usr/local/www/data/sarpras
ServerName sarpras.comlabs.itb.ac.id
ErrorLog /var/log/freebsddiary.yi.org-error.log
TransferLog /var/log/freebsddiary.yi.org-access.log
</VirtualHost>
<VirtualHost 167.205.79.158>
DocumentRoot /usr/local/www/data/maintenance
ServerName maintenance.comlabs.itb.ac.id
ErrorLog /var/log/freebsddiary.yi.org-error.log
TransferLog /var/log/freebsddiary.yi.org-access.log
</VirtualHost>
Sederhana saja bukan? Perlu diingat agar semua file milik tiap departemen haruslah
diletakkan di DocumentRoot setiap departemen masing-masing.
Ketika kita membutuhkan enkripsi untuk website yang mengirimkan informasi penting
seperti username dan password kita untuk mengakses sesuatu, maka kita harus
menambahkan sebuah fitur pada Web Server Apache kita. Fitur ini biasa disebut dengan SSL.
Ketika saya memutuskan untuk menginstall apache versi 2.2, maka saya menemukan bahwa
sebuah package secara otomatis ikut terinstall pada sistem saya, package itu adalah
openssl-0.9.8g. Open ssl adalah salah satu dari program freeware yang mendukung ssl, oleh
karena itu saya memutuskan untuk menggunakan program ini. Hal pertama yang perlu
dilakukan untuk mengaktifkan SSL adalah membuat certificate untuk web server kita. Untuk
aman nya, kita akan membuat certificate ini pada home directory root untuk nantinya dicopy
ke directory yang benar, sehingga kita memiliki backup file apabila ada kesalahan dalam
certificate kita. Pada directory /root ketikkan perintah ini :
Kemudian openssl akan menanyakan phrase key, masukkan sesuai keinginan anda, tapi
jangan sampai lupa karena akan ditanyakan lagi setelah ini dan setiap kali openssl dijalankan.
Selanjutnya, ketikkan perintah :
Dimana setelah mengetikkan perintah ini kita akan ditanyai bermacam-macam pertanyaan
tentang web server kita. Jawab saja sebisanya :p
Kemudian tibalah saatnya untuk menandatangani certificate yang sudah kita buat, caranya
gunakan perintah ini :
Oke, certificate yang dibuat sudah aktif selama 365 hari, dan bisa kita ganti apabila kita
menghendakinya. Sekarang kita tinggal menaruh 2 file yang sudah kita buat tadi ke directory
/usr/local/etc/apache22 caranya gunakan perintah :
cp /root/server.key /usr/local/etc/apache22
cp /root/server.crt /usr/local/etc/apache22
Kemudian kita harus mengeset permission untuk kedua file tersebut supaya hanya bisa
dibaca oleh pemiliknya, yaitu root. Caranya gunakan perintah :
Selanjutnya kita harus mengatur file konfigurasi apache yang mengatur tentang SSL. File ini
adalah
/usr/local/etc/apache22/extra/httpd-ssl.conf
Yang harus diubah adalah bagian Server Certificate, dimana kita harus memasukkan path
yang benar dengan file server.crt yang telah kita copy ke directory /usr/local/etc/apache22
tadi. Jangan lupa untuk meng-uncomment line ini, sehingga menjadi :
SSLCertificateFile “/usr/local/etc/apache22/server.crt”
Terakhir kita harus mengedit file httpd.conf agar membaca konfigurasi yang sudah kita
lakukan pada file httpd-ssl.conf. Bagian yang mengatur tentang SSL ini ada di akhir
file httpd.conf, tinggal di uncomment saja, sehingga menjadi :
Include etc/apache22/extra/httpd-ssl.conf
Kemudian untuk menjalankan openSSL, kita tinggal merestart saja apache22 kita, karena
openSSL ini adalah suatu fitur built-in pada apache22.
Demikianlah, kita telah selesai membuat Web Server yang mensupport database MySQL,
bahasa PHP, dan enkripsi https menggunakan OpenSSL. Terimakasih ^__^
1. Dengan mengetikan kldload accf_http kelemahannya setiap kali abis restart harus ketik itu
sebelum jalanin apache
2. Dengan merubah loader.conf yang ada di folder /boot/default supaya otomatis load
accf_http setiap kali restart caranya:
Buka file loader.conf dengan editor kesayangan anda contoh nya pico jadi command nya pico
/boot/default/loader.conf
kemudian cari entri berikut ini
Untuk memberikan fitur web-based database management kepada user yang tidak suka
mengatur database yang ada pada web mereka dengan command-line, kita bisa menginstall
phpMyAdmin di server kita. Langkah-langkahnya :
cd /usr/ports/databases/phpmyadmin
make install clean
mv /usr/local/www/phpMyAdmin /usr/local/www/apache22/data
apachectl restart
selanjutnya kita harus mengkonfigurasi phpmyadmin sesuai dengan kebutuhan kita, caranya
kita bisa memanfaatkan script php yang sudah disediakan. Tapi sebelum itu kita perlu
melakukan beberapa persiapan, yaitu :
cd /usr/local/www/apache22/data/phpMyAdmin
mkdir config
chmod 777 config
2. Mengatur password yang digunakan oleh user root untuk membuka halaman web ini,
caranya :
cp config/config.inc.php .
Kemudian hapus direktori config dan set permission untuk file konfigurasi kita :
rm -rf config
chmod 444 config.inc.php
Sekian ^__^