Sebelum menginstall Apache dan PHP, yang harus diinstall terlebih dahulu adalah MySQL dan OpenSSL. Untuk menginstalasi kedua aplikasi ini di FreeBSD cukup mudah melalui ports.
Install MySQL
Installasi melalui port :
# cd /usr/ports/databases/mysql51-server
# make install all clean
# mkdir /var/db/mysql
# cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnf
# /usr/local/bin/mysql_install_db
# chown -R mysql /var/db/mysql/
# chgrp -R mysql /var/db/mysql/
# /usr/local/bin/mysqld_safe –user=mysql &
Untuk mengaktifkan MySQL saat booting, buka file /etc/rc.conf dan tambahkan baris:
mysql_enable = “YES”
Lakukan Tes apakah mysql server kita sudah jalan atau belum :
# ps ax | grep mysql
Bila berhasil maka akan muncul tampilan seperti berikut :
630 con- I 0:00.02 /bin/sh /usr/local/bin/mysqld_safe -user=mysql
675 con- S 18:15.64 /usr/local/libexec/mysqld –basedir=/usr/local –data
15385 p0 R+ 0:00.00 grep mysql
Selanjutnya buat password untuk MySQL root user:
# sudo mysqladmin -u root password ‘password-root-mysql’
Coba masuk ke MySQL console dengan password root tersebut.
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 603704 to server version: 5.0.22
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> \q
Bye
Install OpenSSL
Langkah selanjutnya adalah menginstalasi OpenSSL, cara menginstalasi OpenSSL dalam hal ini menggunakan ports juga.
# cd /usr/ports/security/openssl
# make install clean
Buat direktori untuk menempatkan certificate SSL:
# mkdir -p /usr/local/openssl/{certs,private}
Kemudian generate private key 1024-bit:
# cd /usr/local/openssl
# /usr/local/bin/openssl genrsa -out private/namadomain.com.key 1024
Ubah permission untuk direktori private menjadi:
# chown -R root:wheel private
# chmod -R 600 private
# chmod u+X private
Generate Certificate Signing Request (CSR) File:
# /usr/local/bin/openssl req -new -key private/namadomain.com.key -out certs/namadomain.com.csr
Country Name (2 letter code) [GB]: ID
State or Province Name (full name) [Some-State]: Propinsi
Locality Name (eg, city) []: Kota
Organization Name (eg, company) [Internet Widgits Pty Ltd]: PT. Nama Usaha
Organizational Unit Name (eg, section) []: Bidang Usaha Perusahaan
Common Name (eg, your name or your server’s hostname) []: namadomain.com
Email Address []: <!– var prefix = ‘&amp;#109;a’ + ‘i&amp;#108;’ + ‘&amp;#116;o’; var path = ‘hr’ + ‘ef’ + ‘=’; var addy44102 = ‘p&amp;#111;stm&amp;#97;st&amp;#101;r’ + ‘&amp;#64;’; addy44102 = addy44102 + ‘n&amp;#97;m&amp;#97;d&amp;#111;m&amp;#97;&amp;#105;n’ + ‘&amp;#46;’ + ‘c&amp;#111;m’; document.write( ‘‘ ); document.write( addy44102 ); document.write( ‘‘ ); //–>\n postmaster@namadomain.com <!– document.write( ‘‘ ); //–>
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []: masukkanpassword
An optional company name []:
Kemudian buat Certificate Signed (CRT) file:
# /usr/local/bin/openssl x509 -req -days 365 -in certs/namadomain.com.csr -out certs/namadomain.com.crt -signkey private/namadomain.com.key
Certificate yang dibuat itu nantinya akan digunakan bila webserver support SSL.
Install Apache
Untuk Apache dan PHP download manual dan taruh pada directory /usr/local/src
# mkdir /usr/local/src (jika sudah ada lanjutkan ke tahap selanjutnya)
# cd /usr/local/src
# wget http://vinum.web.id/src/httpd-2.2.4.tar.gz
# tar –zxf httpd-2.2.4.tar.gz
# cd httpd-2.2.4
# ./configure –prefix=/usr/local/server/apache2 –enable-rewrite –enable-dav –enable-ssl –with-ssl=/usr/local/ –enable-vhost-alias –with-included-apr
# make
# make install
Keterangan dari masing-masing opsi di atas adalah:
–prefix=[DIR]: Menginstall aplikasi ke target direktori yang ditentukan.
–enable-rewrite: Mengaktifkan rule based URL manipulation melalui module mod_rewrite.
–enable-dav: Mengaktifkan protocol WebDAV melalui module mod_dav. Dengan protocol WebDAV ini memungkinkan membuat, memindah, menyalin, dan menghapus resource pada sebuah web server.
–enable-ssl: Mengaktifkan module SSL/TLS.
–with-ssl=[DIR]: Di mana library SSL/TLS diinstall.
–enable-vhost-alias: Support dengan banyak virtual host.
–with-included-apr: Install apr. APR atau Apache Portable Runtime pada Apache 2.2.x versi merupakan source yang sudah menyatu dengan Apache Source.
Install PHP
Sebelum menginstalasi PHP, di sarankan untuk menginstall aplikasi-aplikasi via ports yang diperlukan (recommended) PHP saat instalasinya. Aplikasi-aplikasi tersebut adalah:
- mcrypt (/usr/ports/security/mcrypt) dan libmcrypt (/usr/ports/security/libmcrypt)
- db4 (/usr/ports/databases/db4) dan gdbm (/usr/ports/databases/gdbm)
- gd (/usr/ports/graphics/gd)
- libxml2 (/usr/ports/textproc/libxml2)
Download sourcenya :
# wget http://vinum.web.id/src/php-5.2.0.tar.bz2
# tar -jxvf php-5.2.0.tar.bz2 (ekstrak filenya)
# cd php-5.2.0 (masuk ke directorynya)
# ./configure -with-apxs2=/usr/local/server/apache2/bin/apxs -with-mysql=/usr/local -with-openssl=/usr/local -with-config-file-path=/usr/local/server/apache2/conf -with-jpeg-dir=/usr/local/lib -with-png-dir=/usr/local/lib -with-gettext=/usr/local/lib -with-gd -with-zlib -with-xml -with-mcrypt=/usr/local/lib -enable-mbstring=all -disable-short-tags
# make
# make install
Keterangan dari masing-masing opsi di atas adalah:
–with-apxs2[=FILE]: Menyertakan shared Apache 2.0 Handler module.
–with-mysql[=DIR]: Menyertakan dukungan MySQL. DIR adalah di mana binary MySQL diinstall.
–with-openssl[=DIR]: Menyertakan dukungan OpenSSL.
–with-config-file-path=PATH: Di mana file php.ini akan diletakkan.
–with-png-dir[=DIR]: Menyertakan dukungan format file PNG.
–with-gettext[=DIR]: Menyertakan dukungan GNU gettext.
–with-gd[=DIR]: Menyertakan dukungan GD.
–with-zlib[=DIR]: Menyertakan dukungan zlib.
–with-libxml-dir[=DIR]: Menyertakan dukungan XML.
–with-mcrypt[=DIR]: Menyertakan dukungan mcrypt atau Multi-cipher cryptographic library.
–enable-mbstring: Mengaktifkan dukungan multibyte string.
–disable-short-tags: Nonaktifkan penggunaan tag pendek
Edit file /usr/local/server/apache2/conf/php.ini dan sesuaikan dengan kebutuhan. Pada dasarnya default file konfigurasi ini sudah cukup baik.
Karena PHP diinstall sebagai module pada Apache, kita perlu mengubah kepemilikan direktori PHP yang hanya akan mengijinkan akses kepada user root dan www saja.
# chown -R root:www /usr/local/lib/php
# chmod -R g-w,o-rwx /usr/local/lib/php
Edit file /usr/local/server/apache2/conf/httpd.conf dan ubah baris-baris berikut menjadi:
User www
Group www
ServerAdmin <!– var prefix = ‘&amp;#109;a’ + ‘i&amp;#108;’ + ‘&amp;#116;o’; var path = ‘hr’ + ‘ef’ + ‘=’; var addy83260 = ‘h&amp;#111;stm&amp;#97;st&amp;#101;r’ + ‘&amp;#64;’; addy83260 = addy83260 + ‘n&amp;#97;m&amp;#97;d&amp;#111;m&amp;#97;&amp;#105;n’ + ‘&amp;#46;’ + ‘c&amp;#111;m’; document.write( ‘‘ ); document.write( addy83260 ); document.write( ‘‘ ); //–>\n hostmaster@namadomain.com <!– document.write( ‘‘ ); //–>
ServerName www.namadomain.com:80
DirectoryIndex index.html index.php
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddHandler cgi-script .cgi
Aktifkan juga baris-baris berikut dengan menghilangkan tanda # di awal barisnya ( sesuaikan dengan kebutuhan):
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-dav.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf
Selanjutnya ubah permission direktori Apache:
# cd /usr/local/server
Ubah kepemilikan direktori apache2 ke user root:wheel
# chown -R root:wheel apache2
Ubah permission pada direktori apache2. Karena direktori ini kepemilikannya oleh root:wheel dan supaya bisa diakses oleh group www, kita ijinkan group www ini membaca dan mengeksekusi file-file di bawahnya.
# chmod 755 apache2
Selanjutnya pada direktori apache2 ini hanya akan mengijinkan user root saja untuk dapat membaca dan menulisinya dengan mengubah permission menjadi:
# chmod -R 600 apache2/*
Hanya user root saja yang dapat mengakses seluruh direktori yang berada di bawah direktori apache2:
# chmod -R u+X apache2
# cd apache2
Ubah kepemilikan direktori binary Apache ke user root:
# chmod -R u+x bin
Direktori cgi-bin juga berisi file-file binari. Hanya mengijinkan user root dan group www saja yang bisa mengaksesnya.
# chgrp -R www cgi-bin
# chmod -R u+x,g+x cgi-bin
Web server akan membaca direktori icons, maka ubah pula kepemilikannya agar bisa dibaca oleh group www.
# chgrp -R www icons
# chmod -R g+rX icons
Ubah juga permission direktori logs:
# chgrp -R www logs
# chmod g+wX logs
Terakhir ubah kepemilikan direktori htdocs agar bisa dibaca oleh publik. Direktori ini nanti merupakan tempat menyimpan file-file web yang akan ditampilkan pada browser. Akses penulisan ke direktori ini hanya dibatasi kepada user root saja.
# chgrp -R www htdocs
# chmod -R g+rX htdocs
Karena menginstall Apache dari source file. Kita harus membuat sendiri startup script-nya agar dapat dieksekusi oleh server pada saat booting. Start up script diletakkan di direktori /usr/local/etc/rc.d. Startup script dapat didownload di sini: Apache-2 FreeBSD Startup Script (http://rp25rb.files.wordpress.com/2006/11/apachesh.txt)
Kemudian tambahkan dua baris berikut pada file /etc/rc.conf:
apache2_enable=”YES”
apache2_flags=”-DSSL”
Ubah permission file start up script menjadi:
# chmod 555 /usr/local/etc/rc.d/apache.sh
Jalankan file tersebut untuk mengaktifkan daemon httpd:
# /usr/local/etc/rc.d/apache.sh start
Periksa apakah daemon httpd sudah aktif dengan command ps ax:
# ps ax | grep httpd
77429 ?? Ss 0:21.90 /usr/local/server/apache2/bin/httpd -k start
88206 ?? I 0:00.87 /usr/local/server/apache2/bin/httpd -k start
88207 ?? I 0:00.50 /usr/local/server/apache2/bin/httpd -k start
88208 ?? I 0:00.83 /usr/local/server/apache2/bin/httpd -k start
88209 ?? I 0:00.24 /usr/local/server/apache2/bin/httpd -k start
88210 ?? I 0:00.78 /usr/local/server/apache2/bin/httpd -k start
88211 ?? I 0:00.59 /usr/local/server/apache2/bin/httpd -k start
88212 ?? I 0:01.05 /usr/local/server/apache2/bin/httpd -k start
88213 ?? I 0:01.49 /usr/local/server/apache2/bin/httpd -k start
88497 ?? I 0:00.40 /usr/local/server/apache2/bin/httpd -k start
88785 ?? I 0:00.56 /usr/local/server/apache2/bin/httpd -k start
15546 p0 L+ 0:00.00 grep httpd
Bila output di console sudah seperti di atas, selamat! Anda sudah berhasil menginstall web server.
greetz thx to indofreebsd.or.id