UII SYNAPTIC
Web Server: Apache 2.2.14 dengan PHP 5.3.2, Python, Ruby, dan WebDAV
Database Server: MySQL 5.1.41
Mail Server: Postfix
DNS Server: BIND9
FTP Server: proftpd
POP3/IMAP: disini akan digunakan format Maidir dan kemudian akan diinstal
Courier-POP3/Courier-IMAP.
Webalizer untuk monitoring statistic website
Versi dari software-software diatas tidaklah mutlak, dapat menggunakan versi yang lebih
baru, tetapi tidak dianjurkan untuk menggunakan versi yang lebih rendah. Kecuali untuk
bagian ISPConfig-nya, tutorial pada modul ini hanya bisa menggunakan ISPConfig versi 2
saja dan tidak kompatibel dengan ISPConfig versi 3.
1. Persiapan Tools
Untuk menginstal sistem ini kita akan membutuhkan:
Pilih layout keyboard (ketikkan beberapa tombol dan installer akan secara otomatis mendetek
layout keyboard yang digunakan):
Installer akan mengecek CD instalasi, hardware, dan konfigurasi jaringan dengan DHCP
apabila terdapat DHCP server pada jaringan:
Masukkan hostname yang diinginkan. Pada tutorial ini yang digunakan adalah
server1.example.com, jadi yang diinputkan adalah server1:
Installer akan mendeteksi time zone secara otomatis. Pilih yes untuk memilih opsi default
atau no untuk mengatur time zone sendiri:
Sekarang kita harus mempartisi harddisk. Untuk lebih mudahnya pilih Guided – use
entire disk and set up LVM – pilihan ini akan membuat satu volume group dengan dua
volume logical, satu untuk / (root) filesystem dan satu lagi untuk swap. Partisi juga
bisa diatur sendiri sesuai keinginan dengan memilih opsi Manual.
Jika memilih Guided – use entire disk and set up LVM, partioner akan membuat satu
volume group berukuran besar yang memakan seluruh space harddisk. Kita bisa
menspesifikasikan seberapa banyak space harddisk yang harus digunakan oleh volume
logical untuk / (root) dan swap.
Setelah selesai, ketika ditanyakan Write the changes to disks? Pilih yes:
Buat account user, sebagai contoh Administrator dengan username administrator (jangan
menggunakan username admin karena merupakan reserved word pada Ubuntu 10.04):
Jika butuh enkripsi untuk private directory pilih yes jika tidak pilih no:
Selanjutnya kita akan mengkonfigurasi apt package manager. Biarkan bagian HTTP proxy
kosong kecuali memang ingin menggunakan proxy server untuk konek ke internet:
Pilih konfigurasi update untuk sistem. Jika ingin menggunakan update otomatis pilih
Install security updates automatically dan jika ingin menagtur update secara
manual pilih No automatic updates. Pada tutorial ini yang akan kita gunakan adalah
update secara manual sehingga yang dipilih adalah No automatic updates:
Kita membutuhkan DNS, mail, dan LAMP server, tetapi kita tidak akan memilihnya
sekarang. Kita akan menginstal paket-paket yang diperlukan satu-persatu nanti. Satu-satunya
paket yang akan kita install sekarang adalah OpenSSH server agar kita dapat langsung
melakukan koneksi ke sistem dengan SSH client seperti Putty setelah proses instalasi selesai:
Instalasi boot loader GRUB:
Pilih yes ketika ditanyakan Install the GRUB boot loader to the master boot
record?:
Instalasi bagian dasar sistem sekarang telah selesai. Keluarkan CD instalasi dari CD drive dan
pilih Continue untuk mereboot sistem:
3. Setting Hak Akses Root
Setelah reboot login dengan username yang telah dibuat sebelumnya (dalam tutorial ini
administrator). Karena langkah-langkah selanjutnya akan kita jalankan dengan hak
akses root. Kita bisa menjalankan semua perintah dengan perintah sudo atau dengan
langsung masuk sebagai root dengan perintah:
$ sudo su
Kita juga bisa mengaktifkan login root dengan menjalankan perintha:
$ sudo passwd root
Dan memberikan password root. Kita bisa langsung login sebagai root, tetapi ini sangat
tidak dianjurkan oleh para pengembang Ubuntu maupun komunitas karena alas an
security.
5. Konfigurasi Jaringan
Karena installer Ubuntu telah melakukankonfigurasi jaringan sistem kita melalui DHCP,
kita harus merubahnya karena suatu server harus memiliki alamat IP static. Edit
/etc/network/interfaces dan konfigurasi sesuai kebutuhan (pada tutorial ini alamat
IP yang digunakan adalah 192.168.0.100):
# nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates main
restricted
12.Konfigurasi MySQL
Instal MySQL dengan perintah:
# aptitude install mysql-server mysql-client libmysqlclient16-dev
Ketika ditanyakan untuk password root isikan:
New password for the MySQL “root” user: <- password
Repeat password for the MySQL “root” user: <- password
Password yang diisikan ini akan digunakan untuk user root@localhost dan juga
root@server1.example.com.
Ubah konfigurasi MySQL pada /etc/mysql/my.cnf agar dapat melakukan listening ke
semua interface dan bukan hanya localhost. Berikan tanda comment pada baris bind-
address = 127.0.0.1:
# nano /etc/mysql/my.cnf
[...]
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[...]
Kemudian restart MySQL:
# /etc/init.d/mysql restart
Sekarang cek apakah networking telah bekerja. Jalankan perintah:
# netstat –tap | grep mysql
Output yang keluar akan terlihat seperti ini:
root@server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:*
LISTEN 6525/mysqld
root@server1:~#
14.Konfigurasi Courier-IMAP/Courier-POP3
Untuk menginstal Courier-IMAP/Courier-IMAP-SSL (pada port 993) dan Courier-
POP3/Courier-POP3-SSL (pada port 995) jalankan perintah:
# aptitude install courier-authdaemon courier-base courier-imap courier-
imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0
libglib2.0-0
Akan ditanyakan dua pertanyaan. Jawab no untuk yang pertama dan yes untuk yang
kedua:
Create directories for web-based administration? <-- No
SSL certificate required <-- Ok
Pada saat instalasi sertifikat SSL untuk IMAP-SSL dan POP3-SSL akan dibuat dengan
hostname localhost. Untuk mengubahnya menjadi hostname yang benar
(server1.example.com pada tutorial ini), delete sertifikat tersebut:
# cd /etc/courier
# rm -f /etc/courier/imapd.pem
# rm -f /etc/courier/pop3d.pem
Kemudian modifikasi dua file berikut (Ganti CN=localhost menjadi
CN=server1.example.com):
# nano /etc/courier/imapd.cnf
[...]
CN=server1.example.com
[...]
Selanjutnya:
# nano /etc/courier/pop3d.cnf
[...]
CN=server1.example.com
[...]
Jalankan perintah ini untuk membuat ulang sertifikat:
# mkimapdcert
# mkpop3dcert
Restart Courier-IMAP-SSL dan Courier-POP3-SSL:
# /etc/init.d/courier-imap-ssl restart
# /etc/init.d/courier-pop-ssl restart
Jika tidak ingin menggunakan ISPConfig, konfigurasi Postfix agar mengirimkan email ke
Maildir* user:
# postconf -e 'home_mailbox = Maildir/'
# postconf -e 'mailbox_command ='
# /etc/init.d/postfix restart
Langkah diatas tidak perlu dilakukan jika inginmenggunakna ISPConfig pada sistem.
Karena ISPConfig akan menangani konfigurasi tersebut menggunakan procmail recipes.
15.Konfigurasi Apache/PHP5/Ruby/Python/WebDAV
Instal Apache:
# aptitude install apache2 apache2-doc apache2-mpm-prefork apache2-utils
apache2-suexec libexpat1 ssl-cert
Kemudian install PHP5, Ruby, dan Python (ketiganya merupakan modul untuk Apache):
# aptitude install libapache2-mod-php5 libapache2-mod-ruby libapache2-
mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear
php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming
php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-
xmlrpc php5-xsl
Selanjtnya edit /etc/apache2/mods-available/dir.conf:
# nano /etc/apache2/mods-available/dir.conf
Dan ubah baris Directory Index:
<IfModule mod_dir.c>
</IfModule>
Aktifkan modul-modul Apache yang dibutuhkan (SSL, rewrite, suexec, include,
dan WebDAV):
# a2enmod ssl
# a2enmod rewrite
# a2enmod suexec
# a2enmod include
# a2enmod dav_fs
# a2enmod dav
Restart Apache:
# /etc/init.d/apache2 restart
Edit file /etc/mime.types agar ISPConfig dapat membaca file ruby dengan format .rb:
# nano /etc/mime.types
Comment baris application/x-ruby:
[...]
#application/x-ruby rb
[...]
Restart Apache:
# /etc/init.d/apache2 restart
Sekarang file .rb akan dapat dieksekusi dan ditampilkan dilayar bersama dengan file .rbx.
Pada tahap selanjutnya kita akan menonaktifkan PHP (hal ini perlu dilakukan apabila
ingin menginstal ISPConfig pada server). Tidak seperti PHP, Ruby dan Python telah
dinonaktifkan secara default.
16.Menonaktifkan PHP
Pada ISPConfig kita akan mengkonfigurasi PHP untuk setiap website satu-persatu. Kita
dapat mengatur website mana yang dapat menjalankan script PHP dan mana yang tidak.
Hal ini hanya dapat dilakukan apabila PHP dinonaktifkan secara global (untuk setiap
konfigurasi) karena jika tidak demikian semua website akan dapat menjalankan script
PHP, tidak peduli seperti apa settingan kita pada ISPConfig.
Untuk menonaktifkan PHP secara global, edit file /etc/mime.types dan uncomment
bagian application/x-httpd-php:
# nano /etc/mime.types
[...]
#application/x-httpd-php phtml pht php
#application/x-httpd-php-source phps
#application/x-httpd-php3 php3
#application/x-httpd-php3-preprocessed php3p
#application/x-httpd-php4 php4
#application/x-httpd-php5 php5
[...]
Edit /etc/apache2/mods-enabled/php5.conf dan comment bagian SetHandler:
# nano /etc/apache2/mods-enabled/php5.conf
<IfModule mod_php5.c>
<FilesMatch "\.ph(p3?|tml)$">
#SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
#SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>
</IfModule>
Restart Apache:
# /etc/init.d/apache2 restart
17.Konfigurasi Proftpd
Instal Proftpd dengan menjalankan:
# aptitude install proftpd ucf
Kerika ditanyakan Run proftpd jawab standalone:
Run proftpd: <-- standalone
Untuk alas an keamanan tambahkan baris berikut ini kedalam
/etc/proftpd/proftpd.conf:
# nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]
ISPConfig menginginkan konfigurasi untuk berada pada /etc/proftpd.conf dan bukan
pada /etc/proftpd/proftpd.conf , oleh sebab itu kita akan membuat link ke path yang
bersangkutan:
# ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf
Kemudian restart Proftpd:
# /etc/init.d/proftpd restart
18.Instalasi Webalizer
Untuk menginstal webalizer jalankan perintah:
# aptitude install webalizer
21.Konfigurasi ISPConfig
Konfigurasi untuk server sekarang sudah selesai, tahap selanjutnya adalah menginstal
ISPConfig pada server. Panduan instalasi ISPConfig dapat dilihat di
http://www.ispconfig.org/manual_installation.htm
Sebelum menginstal ISPConfig, edit file /usr/include/stdio.h dan ganti bagian
getline menjadi parseline pada baris ke-651:
# nano /usr/include/stdio.h
[...]
This function is not part of POSIX and therefore no official
cancellation point. But due to similarity with an POSIX interface
or due to the implementation it is a cancellation point and
therefore not marked with __THROW. */
extern _IO_ssize_t parseline (char **__restrict __lineptr,
size_t *__restrict __n,
FILE *__restrict __stream) __wur;
#endif
[...]
Bila tidak diedit, proses instalasi akan gagal dengan error dibawah ini:
htpasswd.c:101: error: conflicting types for 'getline'
/usr/include/stdio.h:651: note: previous declaration of 'getline' was
here
make[2]: *** [htpasswd.o] Error 1
make[2]: Leaving directory `/home/ISPConfig-
2.2.stable/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]: *** [build-support] Error 1
make[1]: Leaving directory `/home/ISPConfig-
2.2.stable/install_ispconfig/compile_aps/apache_1.3.41'
make: *** [build] Error 2
ERROR: Could not make Apache
Setelah instalasi selesai kita dapat merubahnya kembali menjadi getline. Tetapi jangan
lupa untuk mengganti menjadi parseline lagi apabila ingin melakukan update
ISPConfig.
22.SuExec (Optional)
Jika ingin menjalankan CGI scripts dengan SuExec, maka kita harus menspesifikasikan
/var/www sebagai direktori home untuk website yang dibuat dengan ISPConfig karena
Ubuntu’s SuExec dikompil dengan /var/www sebagai Doc_Root. Jalankan:
# /usr/lib/apache2/suexec –V
Dan outputnya akan terlihat seperti ini:
root@server1:~# /usr/lib/apache2/suexec -V
-D AP_DOC_ROOT="/var/www"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"
root@server1:~#