Setting Multiple Domain / Sub Domain di CentOS 5.5

Sebuah Peladen Web (web server) bisa kita gunakan untuk meladeni lebih dari satu Ranah (Domain) atau Sub Ranah (Sub Domain), setelah dikonfigurasi di sisi Peladen Sistem Penamaan Domain (DNS) maka selanjutnya tinggal mengkonfigurasi VirtualHost dan direktif di sisi Peladen Web, dalam hal ini mengkonfigurasi httpd.conf

Oke, kali ini contohnya adalah pada server CentOS 5.5, maka tinggal sunting saja file konfigurasi httpd.conf yang terletak pada : /etc/httpd/conf/httpd.conf dan tambahkan baris berikut pada baris paling bawah file tersebut :

NameVirtualHost ip-server-web:80
DocumentRoot "/lokasi/dokumen/web"
ServerAdmin [email protected]
ServerName nama.ranah.web.id
allow from all
Options +Indexes
DocumentRoot "/lokasi/dokumen/web" 
ServerAdmin [email protected] 
ServerName namadomain.com 
allow from all 
Options +Indexes

Setelah itu, tinggal restart httpd nya, /etc/init.d/httpd restart dan vhost telah siap digunakan.

Semoga Bermanfaat 😉

Could not connect: Lost connection to MySQL server at ‘reading initial communication packet’, system error: 111

Yup, judul diatas itu menginformasikan kalau server MySQL yang kita akses tidak mengizinkan koneksi dari luar. Ini masalah klasik yang dialami tatkala applikasi dengan database terpisah.

Cara menanggulanginya mudah, cukup edit konfigurasi mysql (/etc/mysql/my.cnf), lalu reject (beri tanda #) 2 baris konfigurasi dibawah ini :

skip-external-locking
bind-address = 127.0.0.1

menjadi :

#skip-external-locking
#bind-address = 127.0.0.1

Restart mysql dengan :

# /etc/init.d/mysql restart

Semoga bermanfaat 😉

Disable SELinux di CentOS 5.5

SELinux atau kependekan dari Security-Enhanced Linux merupakan tambahan keamanan yang mengatur berbagai kontrol akses di sistem linux kita. Namun terkadang ada beberapa kondisi dimana kita tidak menginginkannya, seperti misalnya akses ftp menjadi unwriteable, dll.

Di CentOS 5.5 SELinux ini secara default aktif, untuk menonaktifkannya, cukup edit konfigurasi SELinux yang berada di : /etc/selinux/config menjadi seperti ini :

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are: 
# targeted - Only targeted network daemons are protected. 
# strict - Full SELinux protection. SELINUXTYPE=targeted

Selanjutnya simpan dan reboot CentOS 5.5 anda, mudah bukan?

Semoga Bermanfaat 😉

Monitoring paket dengan pktstat

Penasaran ingin melihat paket apa yang lewat pada sebuah antarmuka jaringan (NIC)? Atau ingin melihat traffic yang lewat pada jaringan?

Jika pertanyaan tersebut dijawab : Ya! maka salah satu alat bantu (tools) yang bisa digunakan adalah pktstat. Sebuah piranti lunak yang simple, ringan, berjalan pada modus terminal (command)

Caranya mudah, cukup install pktstat pada distribusi linux yang anda gunakan, misalnya :

Untuk Mandriva :

# urpmi pktstat

Untuk Ubuntu :

# apt-get install pktstat

Untuk OpenSUSE :

# zypper install pktstat

Untuk distribusi lain silahkan menyesuaikan.

Cara penggunaannya cukup mudah, saya biasa menggunakan perintah dibawah ini untuk mengecek paket yang lewat di Interface eth0 :

# pktstat -i eth0 -n -t

keterangan :

-i untuk interface yang akan di monitoring

-n agar hostname / domainname tidak diresolve

-t agar diurutkan berdasarkan besar paket yang lewat

Untuk parameter yang lainnya silahkan dibaca di halaman manualnya :# man pktstat

Sekian, semoga bermanfaat 😉

Replikasi Database MySQL Untuk Multiple Database

Dulu saya udah pernah nulis tentang Membuat MySQL Database Replication Server, bagi yang belum baca silahkan disimak di tulisan ini (http://a.ndri.info/andri-weblog/703/catatan/membuat-mysql-database-replication-server). Pada tulisan itu contoh replikasi hanya untuk satu database, nahhh gimana kalau yang mau di cadangkan atau yang direplikasi lebih dari satu database…?

Caranya sama aja, cuma bin log do db nya aja yang dibikin banyak (goodluck)

Jadi nanti kira-kira isi /etc/mysql/my.cnf di sisi Master adalah seperti ini :

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 500M
binlog_do_db = dbpertama
binlog_do_db = dbkedua
binlog_do_db = dbketiga
binlog_do_db = dbkeempat
binlog_do_db = dbkelima
binlog_do_db = dbkeenam
binlog_do_db = dbketujuh
binlog_do_db = dbkedelapan
binlog_do_db = dbkesembilan
binlog_do_db = dbke-x

Sedangkan isi my.cnf di sisi Slave adalah seperti ini :

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 500M
replicate_do_db = dbpertama
replicate_do_db = dbkedua
replicate_do_db = dbketiga
replicate_do_db = dbkeempat
replicate_do_db = dbkelima
replicate_do_db = dbkeenam
replicate_do_db = dbketujuh
replicate_do_db = dbkedelapan
replicate_do_db = dbkesembilan
replicate_do_db = dbke-x

Untuk langkah-langkahnya sama aja, yang perlu diperhatikan bin log file sama pos nya master server.

Semoga Bermanfaat 😉

Berbagai Cara Untuk Mengetahui Aktifitas User Linux

Ada berbagai cara yang bisa kita lakukan yang berkaitan dengan aktifitas user di sistem linux yang kita pelihara, hal ini biasanya penting untuk sistem linux yang digunakan rame-rame (multiuser).

Oke, berikut ini hal-hal yang biasa saya gunakan :

1. Begitu ssh, langsung liat last login, disitu ketauan IP mana yang terakhir kali masuk ke sistem kita :

Last login: Wed May 26 21:32:17 2010 from 125.166.xxx.xxx

2. Lihat user yang aktif dengan menggunakan w atau who

# w
01:28:49 up 3 days, 12:04, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
andri pts/0 125.166.xxx.xxx 01:25 0.00s 0.14s 0.00s w
dki pts/1 118.98.xxx.xxx 01:26 2:35 0.10s 0.10s -bash

# who
andri pts/0 2010-05-30 01:25 (125.166.xxx.xxx)
dki pts/1 2010-05-30 01:26 (118.98.xxx.xxx)

3. Bisa juga dengan ps aux

# ps aux |grep bash | grep pts
andri 9297 0.0 0.0 6324 3636 pts/0 Ss 01:25 0:00 -bash
dki 9371 0.0 0.0 6320 3576 pts/1 Ss+ 01:26 0:00 -bash

4. Lihat aktifitas terakhir dari semua user dengan lastlog

# lastlog
Username Port From Latest
root **Never logged in**
daemon **Never logged in**
bin **Never logged in**
sys **Never logged in**
sync **Never logged in**
games **Never logged in**
man **Never logged in**
lp **Never logged in**
mail **Never logged in**
news **Never logged in**
uucp **Never logged in**
proxy **Never logged in**
www-data **Never logged in**
backup **Never logged in**
list **Never logged in**
irc **Never logged in**
gnats **Never logged in**
nobody **Never logged in**
libuuid **Never logged in**
syslog **Never logged in**
landscape **Never logged in**
bind **Never logged in**
sshd **Never logged in**
dki pts/1 118.98.xxx.xxx Sun May 30 01:26:01 +0700 2010
mysql **Never logged in**
postfix **Never logged in**
proftpd **Never logged in**
ftp **Never logged in**
vmail **Never logged in**
clamav **Never logged in**
amavis **Never logged in**
andri pts/0 125.166.xxx.xxx Sun May 30 01:25:46 +0700 2010
statd **Never logged in**
manapar **Never logged in**

5. Bisa juga dengan menggunakan tools bantu seperti finger, tapi harus diinstall terlebih dahulu.

# finger
Login Name Tty Idle Login Time Office Office Phone
andri Andri Nawawi pts/0 May 30 01:25 (125.166.xxx.xxx)
dki DKI pts/1 10 May 30 01:26 (118.98.xxx.xxx)

Kalau ternyata melihat ada yang mencurigakan, bisa lihat aktifitas user yang bersangkutan dengan menggunakan perintah history :

# history

Trus apa lagi ya? Mmm, kalau mau liat daftar user &/ yang ada di sistem, bisa pake perintah :

# cat /etc/passwd# cat /etc/group

atau

# getent passwd
# getent group

Udah, segitu dulu… Semoga Bermanfaat 😉

header (‘Location : http://www.domain.web.id/blablabla.php’) tidak bekerja

Salah satu permasalahan sepele tatkala membuat sebuah web dengan menggunakan php, kadang masalah sepele ini menghambat pekerjaan / logic yang lebih penting.

Salah satu permasalahan sepele itu adalah : Header (“Location : “);

Seperti yang kita ketahui bersama bahwa tag Header (“Location : “) ; pada php berfungsi untuk mengirimkan header atau mengarahkan halaman ke halaman yang lainnya.

Pada waktu menemui kegagalan, permasalahan klasik yang terjadi adalah :

1. Terdapat output dari php sebelum tag header

Contoh :

echo "Maaf, anda tidak punya akses";
header ('Location : http://domain.web.id/blablabla.php');

Contoh diatas akan menggagalkan perintah header, karena ada output sebelumnya.

2. Permasalahan configurasi php

Cek php.info anda apakah buffer php aktif? (output_buffering = 1) kalau iya, maka hapus angka satu dan biarkan setting menjadi none

____________

Update from blackburn :

Header juga bisa digunakan untuk berbagai macam hal.

Misalnya kita pengen user beralih ke halaman lain dengan sedikit kata pengantar misalnya:

“Anda akan kami alihkan ke website_tujuan dalam 5 detik … atau klik di sini”

Kita ngga usah bikin code nya di HTML Meta, cukup pake PHP kaya di bawah ini:

header("refresh:5;url=website_tujuan");
echo 'Anda akan kami alihkan ke website_tujuan dalam 5 detik ... atau klik di sini';?>

Sekian, Semoga Bermanfaat 😉

Ngga Enaknya Blog Tanpa Database Buffer *sigh*

Blog ini saya bikin pake sphpblog, uniknya sphpblog ini tanpa database, jadi semua entry / tulisan disini disimpan dalam bentuk plaintext atau file text murni.

Tapi nggak enaknya ngga ada buffer / penyangga, jadi kalau pas udah nulis cape-cape dan ternyata session nya habis, nggak kesave (-:

Ini kejadian tadi pagi, saya nulis tentang penggunaan NFS di linux, udah jadi, eee… session habis, akhirnya ngga kesave, musti nulis ulang. capee deehh