Install webserver lewat ports freeBSD

Buat webserver dengan freeBSD asyik lo.. pa lagi pakai ports… 😉
Upgrade dulu port freeBSD dengan yang paling baru, caranya bisa dilihat disini
freeBSD yang penulis gunakan adalah versi 7.0-RELEASE

    • Pertama instalasi Mysqlnya dulu

#cd /usr/ports/databases/mysql51-server
#make install WITH_OPENSSL=yes clean

Kemudian buat folder tempat data database (defaultnya /var/db/mysql), karena biasanya partisi var kecil, buat partisi khusus untuk menampung data database misal /database (waktu awal install freeBSD tentunya). Selanjutnya…

#mkdir -p /database/mysql
#chown -R mysql /database
#chgrp -R mysql /database
#vi /usr/local/etc/rc.d/mysql-server
#vi /usr/local/etc/rc.d/mysql-server
edit default data dir menjadi /database/mysql :
: ${mysql_dbdir="/var/db/mysql"}
ubah
: ${mysql_dbdir="/databaseb/mysql"}


#touch /database/mysql/hostname.domain_name

Ctt: untuk freebsd 9.0 sudah jadi satu partisi, maka jika digunakan default mysql_dbdir lakukan perintah berikut :

#chown -R mysql:mysql /var/db/mysql


ganti hostname.domain_name dengan hostname dan domain saudara, misal: lpp.uns.ac.id

Supaya mysql otomatis jalan setiap kali server reboot tambahkan perintah berikut :

#echo ‘mysql_enable=”YES”‘ >> /etc/rc.conf

restart server

Cek apakah mysql sudah berjalan

# ps ax | grep mysqld

Kemudian buat tabel masternya :

#cd /usr/local
#mysql_install_db

Jika terjadi error berikut : mysql_install_db FATAL ERROR: Could not find ./bin/my_print_defaults

Solusinya sbb:

// cari lokasi mysql_install_db
# which mysql_install_db
/usr/local/bin/mysql_install_db

// cari lokasi which my_print_defaults
# which my_print_defaults
/usr/local/bin/my_print_defaults

// tambah argumen pd mysql_install_db dgn “/usr/local”
# /usr/local/bin/mysql_install_db  —basedir=/usr/local

Set password root untuk localhost dan domain :

#mysqladmin -u root password ‘new-password’
#mysqladmin -u root -h hostname.domain_name password ‘new-password’

Restart lagi servernya (jangan tanya kenapa ya…. :-))

Tes Mysql dengan login sebagai root

#mysql -u root -p

Untk mengubah pass root localhost

mysql>SET PASSWORD FOR root = PASSWORD('secret');
untuk mengubah pass root domain
mysql>SET PASSWORD FOR root@hostname.domain_name = PASSWORD('secret');

Untuk menjalankan dan mematikan mysql server :

#/usr/local/etc/rc.d/mysql-server start
#/usr/local/etc/rc.d/mysql-server stop

Selesai deh untuk mysqlnya…

    • Kedua Apache webserver

#cd /usr/ports/www/apache22
#make install clean
Jika terjadi eror :
===> apache-2.2.13 depends on file: /usr/local/bin/perl5.8.9 – found
===> apache-2.2.13 depends on file: /usr/local/bin/autoconf-2.62 – found
===> apache-2.2.13 depends on package: libtool>=2.2 – not found
===> Found libtool-1.5.24, but you need to upgrade to libtool>=2.2.
*** Error code 1


upgrade libtool ke versi diatas 2.2. kemudian ulangi install apache22

Supaya jalan tiap kali reboot tambahkan ke rc.conf

#echo ‘apache22_enable=”YES”‘ >> /etc/rc.conf

Set hostname :

#vi /etc/rc.conf –> hostname=”host.domain.name”
#vi /usr/local/etc/apache22/httpd.conf –>ServerName host.domain.name:80

Jika tidak punya hostname, gunakan IP Privat (misal IP Privat saudara 192.168.1.1)
#vi /etc/hosts
tambahkan:
192.168.1.1 host.domain.name

Untuk menjalankan dan mematikan apache server :

#apachectl start
#apachectl stop

Jika muncul eror … No such file or directory: Failed to enable the ‘httpready’ Accept Filter
Silahkan baca artikel ini.

Cek instalasi dengan buka webroswer fafourit saudara ketik pada address bar : host.domain.name atau IP privat

Selesai install apache lanjut ke PHP

    • Install PHP


#cd /usr/ports/lang/php5
#make config

silahkan pilih enviroment yang diperlukan, misal : CLI, CGI, APACHE, DEBUG, SUHOSIN, MULTYBYTE, PATHINFO

#make install clean

Set module PHP ke apache-nya :

#apachectl stop
# vi /usr/local/etc/apache22/httpd.conf

kemudian cek apakan php5_modulenya udah masuk, kemudian tambahin :
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

dan
<IfModule dir_module>
DirectoryIndex index.html
DirectoryIndex index.php

</IfModule>

#apachectl start

Untuk mensetting parameter2x yang ada, buat file php.ini dengan mengcopy php.ini-dist

#cd /usr/local/etc/
#cp php.ini-dist php.ini

Edit file php.ini sesuai kebutuhan webserver
Untuk melihat parameter PHP yg sudah ada buat file phpinfo di data direktori webserver

#vi /usr/local/www/apache2/data/phpinfo.php
<?php
phpinfo();
?>

Akses via web broswer http:/host.domain.name/phpinfo.php

Untuk install extensions php :

#cd /usr/ports/lang/php52-extension
#make config
#make install clean

Atau  extension tertentu:

#cd /usr/ports/graphics/php53-gd/
#make config
#make install clean

Untuk cek gunakan perintah

#php -m

untuk daftar extension ada di : /usr/local/etc/php/extensions.ini

 

Selesai Mysql + Apache + PHP

    • phpMyadmin untuk administrasi database via http


# cd /usr/ports/databases/phpmyadmin
# make install clean

Jika terjadi error terkait fleching PDFlib-Lite-7.0.5., langsung saja download via alamat http://distfiles.macports.org/pdflib/

# cd /usr/ports/distfiles/
# fetch http://distfiles.macports.org/pdflib/PDFlib-Lite-7.0.5.tar.gz
# cd /usr/ports/databases/phpmyadmin
# make install clean

Stop apache server & edit httpd.conf

#apachectl stop
#vi /usr/local/etc/apache22/httpd.conf

Edit httpd.conf :
Tambahkan didalam :

Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"

<Directory "/usr/local/www/phpMyAdmin/">

Options none
AllowOverride Limit
Order Deny,Allow
Deny from all
Allow from all
Allow from 127.0.0.1 host.domain.name

</Directory>

kemudian copy config.default.php :

#cd /usr/local/www/phpMyAdmin
#cp libraries/config.default.php config.inc.php
# vi config.inc.php

ubah
Pada entry $cfg[’Servers’][$i][’auth_type’] = ‘config’; ubahlah menjadi:
$cfg[’Servers’][$i][’auth_type’] = ‘http’;

ubah kepemilikan config.inc.php ke www

#chown www:www config.inc.php

start apache server

#apachectl start

Akses phpmyadmin lewat http://host.domain.name/phpMyAdmin/