0% menganggap dokumen ini bermanfaat (0 suara)
119 tayangan7 halaman

Web Server Dengan Apache, MySQl, PHP, OpenSSL, PhpMyAdmin ITB

Dokumen tersebut memberikan panduan lengkap untuk menginstal dan mengkonfigurasi web server menggunakan FreeBSD, Apache, MySQL, dan PHP beserta fitur tambahan seperti OpenSSL dan virtual hosts. Langkah-langkah instalasi dan konfigurasi masing-masing komponen dijelaskan secara terperinci beserta contoh kode.

Diunggah oleh

Miftahuz Zuhan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
119 tayangan7 halaman

Web Server Dengan Apache, MySQl, PHP, OpenSSL, PhpMyAdmin ITB

Dokumen tersebut memberikan panduan lengkap untuk menginstal dan mengkonfigurasi web server menggunakan FreeBSD, Apache, MySQL, dan PHP beserta fitur tambahan seperti OpenSSL dan virtual hosts. Langkah-langkah instalasi dan konfigurasi masing-masing komponen dijelaskan secara terperinci beserta contoh kode.

Diunggah oleh

Miftahuz Zuhan
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

Web Server dengan Apache, MySQl, PHP,

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 :

mysqladmin -u root -p password

–> ganti dengan password pilihan anda, password ini bisa tidak sama dengan password root
anda.

Untuk mengakses database anda di mysql, gunakan perintah

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.

mysql> create database YM;


Kita bisa lihat pada direktori /var/db/mysql telah ada direktori baru bernama YM, itulah
tempat database kita.

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.

DirectoryIndex index.php index.html index.htm

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 :

LoadModule php5_module libexec/apache/libphp5.so

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 :

DirectoryIndex index.php index.html index.htm

Ini dimaksudkan supaya Apache bisa menampilkan halaman awal berformat PHP (index.php)
bila ada.

AddType application/x-httpd-php .php


AddType application/x-httpd-php-source .phps

Supaya Apache bisa membaca script-script php

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.

Kemudian tinggal kita restart saja Apache dengan menggunakan perintah

apachectl restart

Untuk mengetes php, kita buat file pada /usr/local/www/data yang bernama tes.php
kemudian isikan dengan syntax php berikut ini :

<? phpinfo(); ?>

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.

* https or Secure Socket Layer (SSL) *

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 :

openssl genrsa -des3 -out server.key 1024

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 :

openssl req -new -key server.key -out server.csr

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 :

openssl x509 -req -days 365 -in /root/server.csr -signkey


/root/server.key -out /root/server.crt

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 :

chmod 0400 /usr/local/etc/apache22/server.key


chmod 0400 /usr/local/etc/apache22/server.crt

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 ^__^

Apabila terdapat error berikut ini saat menjalankan apache :

Failed to enable the ‘httpready’ Accept Filter

maka dapat diatasi dengan dua cara, antara lain :


pertama secara default ternyata FreeBSD belum load httpready dalam kernel nya jadi harus
di load donk
cara load nya ada dua cara :

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

accf_data_load=”NO” # Wait for data accept filter


accf_http_load=”NO” # Wait for full HTTP request accept filter

dan ganti NO dengan YES kemudian save.


setelah di simpan silahkan restart box anda dan sekarang apache pun bisa di load tanpa ada
pesan error Failed to enable the ‘httpready’ Accept Filter.

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

phpMyAdmin akan terinstall di direktori /usr/local/www/phpMyAdmin


supaya kita bisa membukanya dari web, pindahkan lah direktori phpmyadmin beserta
seluruh isinya ke Document Root anda.
secara default, apache akan meletakkan DocumentRoot anda di
/usr/local/www/apache22/data jadi,

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

kemudian baru dengan web browser anda, bukalah :


http://ip-address-server-anda/phpMyAdmin/scripts/setup.php
yang bisa anda lakukan pada halaman web ini adalah :
1. Memberlakukan authentikasi untuk user yang ingin membuka halaman web ini, caranya :

pada menu authentication type, pilih “http”

2. Mengatur password yang digunakan oleh user root untuk membuka halaman web ini,
caranya :

isikan password pada kolom dibawah kolom yang bertuliskan


“root”

3. Save Konfigurasi anda

Dengan tetap berada di direktori /usr/local/www/apache22/data/phpMyAdmin, lakukan :

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 ^__^

Anda mungkin juga menyukai