All posts in Unix and Linux

Logs Rotate Nginx di FreeBSD

File logs sering kali menjadi sebuah masalah ketika ukurannya menjadi semakin besar dan memakan sebagian besar hard disk server kita, tetapi di sisi lain file logs juga berguna untuk mencari masalah yang terjadi di server kita.

Gwa juga sempat mengalami beberapa masalah dengan file logs nginx di server FreeBSD. Permasalahan bermula dikarenakan gwa salah mengeset ukuran dari folder ‘/var/logs’ yang hanya berukuran 2 Gb saja ( padahal file logs ukurannya bisa sampai 10 Gb keatas ). Hal tersebut tentu saja mengakibatkan banyak user-user binus-access yang “bernyanyi” karena ga bisa login.

Selain itu ukuran file logs yang semakin lama semakin besar dan terkonsentrasi dalam 1 file tentu saja sangat mempersulit kita dalam melakukan tracing jika terjadi sesuatu, entah itu kena hack, kena dos, kena flood, kompor meleduk, anak hilang, blum sarapan, dll. Oleh karena itu kita akan menggunakan salah satu solusi yaitu rotate file log sehingga file log itu akan dipecah2 menjadi file2 kecil setiap harinya.

Kalau biasanya file logs itu cuma bentuknya “error.log” nanti akan muncul banyak file log sesuai dengan hasil rotate kita, contohnya “error.log.0.bz1″ atau “error.log.1.bz2″.

Jadi langkah pertama yang gwa lakukan adalah mengubah tempat penyimpanan file log ke ‘/usr/local’, kira2 begini lah settingannya di nginx.conf

1
2
access_log /usr/local/log/binus-access.com.access.log;
error_log /usr/local/log/binus-access.com.error.log;

setelah itu kita cuma perlu melakukan perubahan di newsyslog.conf supaya bisa merotate log kita, kira-kira begini isi newsyslog.conf ( /etc/newsyslog.conf )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/var/log/all.log                        600  7     *    @T00  J
/var/log/amd.log                        644  7     100  *     J
/var/log/auth.log                       600  7     100  *     JC
/var/log/console.log                    600  5     100  *     J
/var/log/cron                           600  3     100  *     JC
/var/log/daily.log                      640  7     *    @T00  JN
/var/log/debug.log                      600  7     100  *     JC
/var/log/kerberos.log                   600  7     100  *     J
/var/log/lpd-errs                       644  7     100  *     JC
/var/log/maillog                        640  7     *    @T00  JC
/var/log/messages                       644  5     100  *     JC
/var/log/monthly.log                    640  12    *    $M1D0 JN
/var/log/pflog                          600  3     100  *     JB    /var/run/pflogd.pid
/var/log/ppp.log        root:network    640  3     100  *     JC
/var/log/security                       600  10    100  *     JC
/var/log/sendmail.st                    640  10    *    168   B
/var/log/slip.log       root:network    640  3     100  *     JC
/var/log/weekly.log                     640  5     1    $W6D0 JN
/var/log/wtmp                           644  3     *    @01T05 B
/var/log/xferlog                        600  7     100  *     JC
/usr/local/log/*.log    root:wheel      640  7     *    @T00  GJ    /var/run/nginx.pid

jadi sebenarnya yang harus kita tambahkan adalah line terakhir yaitu

1
/usr/local/log/*.log    root:wheel      640  7     *    @T00  GJ    /var/run/nginx.pid

/usr/local/log/*.log adalah tempat penyimpanan file log kita. Sementara untuk root:wheel itu adalah nama usernya, sementara sisanya ikutin saja la soalnya saya juga ga ngerti hohohoho.

Nah setelah setting itu, kita tinggal menunggu satu hari maka secara otomatis logs file kita akan ter-rotate sendiri. Silakan dicoba sendiri :D

Hotlinking protection di web server Apache

Hari ini gwa disibukkan dengan berbagai banyak kerjaan, entah kenapa kalau masuk kantor itu kerjaan tiba-tiba aja datang bertubi-tubi. Tapi kerjaan utama yang gwa lakukan hari ada memproteksi server Bee Watch.

Yah, seperti yang kita ketahui bersama bahwa Bee Watch sangat menjadi incaran untuk di-embed ke web-web marketing kelas teri. Dimana siaran Bee Watch ( TV Online) digunakan sebagai penarik traffic ke website mereka dan di website mereka diletakkan bermacam-macam iklan entah darimana datangnya. Ada yang isinya iklan Joko Susilo lah, ada iklan google adsense la, dan iklan2 norak lainnya. Dan yang paling membuat gw prihatin adalah design website yang sangat kampungan dan acak-acakan ( sory kalo ini gwa ngomong jujur ).

Selama ini gwa telah melakukan berbagai macam proteksi terhadap Bee Watch. Mulai dari proteksi dari FMS nya, random folder tempat simpan playernya , dan yang terakhir memasang firewall. Tapi ternyata memang dasar maling, tetep saja mereka selalu menemukan cara untuk menembus pertahanan yang gwa buat.

Akhirnya gwa memutuskan membuat hotlink protection di web server Apache gwa dengan menggunakan .htaccess. Mungkin ada yang bertanya-tanya sebenarnya apa itu hotlink. Hotlink itu adalah sebuah istilah yang digunakan ketika sebuah website A yang menghosting katakanlah sebuah gambar yang berukuran 100 MB, kemudian secara tiba-tiba ada website B yang meng-link gambar tersebut ke website milik pribadinya untuk kepentingan dia sendiri.

Ketika ada user yang mengakses website B dan menampilkan gambar yang dihosting oleh website A. Tentu saja hal itu merugikan website A dimana bandwidth yang digunakan adalah bandwidth website A, sementara website B cuma menikmati hasilnya tanpa harus kehilangan bandwidth yang berharga.

Hal inilah yang terjadi dengan Bee Watch dimana ada beberapa website yang tidak bertanggung jawab dengan sengaja melakukan embed siaran Bee Watch untuk menarik traffic ke website mereka. Dan setelah googling-googling dan stress selama 1 jam memikirkan bagaimana cara mem-ban website tersebut akhirnya gwa menemukan sebuah fitur dari web apache yaitu disable hotlinking dengan .htaccess.

Jadi konsepnya sangatlah simple dimana dengan menggunakan script .htaccess kita untuk mendisable semua akses ke file-file kita ( contoh : gambar .gif, .jpg, .png atau .swf ) sehingga hanya beberapa url saja yang telah kita allow dapat mengakses file tersebut ( dalam kasus ini gwa hanya mengallow domain binus-access.com dan 202.58.181.204 ).

Jadi step-stepnya kira begini :

  • Generate file .htaccess di web ini
  • Upload file .htaccess ke root webserver kita ( misalnya /var/www ).
  • Testing hotlinking dari lokal

Jika benar maka seharusnya kita tidak dapat mengakses content website kita dari localhost. Kira-kira begitulah salah satu web security yang sangat penting jika kita ingin memproteksi website kita dari tangan-tangan jahil. Selamat mencoba :)

Install Flash Media Server 3 di Ubuntu 9.04

Hari ini gwa mencoba menginstall ulang Flash Media Server 3 untuk TV Streaming ( Bee Watch ) pada Ubuntu 9.04. Jadi proses install dimulai dari install Ubuntu 9.04 yang memakan waktu 1 hari dikarenakan hard disk yang rusak ( untung udah ganti dengan yang baru ).

Nah jadi setelah setting-setting sana sini mulailah install FMS ( Flash Media Server ), dimulai dari copy installer FMS 3 ke server trus mulai deh extract dengan menggunakan perintah

tar zxvf <installer fms>

setelah selesai extract dilanjutkan dengan menginstall flash media servernya, masuk ke folder FMS nya dan ketik command berikut

./installFMS

ikuti langkah-langkahnya, isi serial number, set port, dan settingan-settingan lainnya. Ketika proses install selesai seharusnya akan muncul error message yang mengatakan NSPR library tidak tersedia, kira-kira begini error messagenya :

Starting Adobe Flash Media Server (please check /var/log/messages)
Error: Flash Media Server needs the NSPR library installed.
Admin server:fmsadmin command:start
Starting Adobe Flash Media Admin Server (please check /var/log/messages)

Hal itu disebabkan karena FMS membutuhkan 2 library yaitu libnspr4.so dan libasneu.so.1. Untuk libnspr4.so kita tinggal melakukan apt-get saja.

apt-get install libnspr4-dev

sementara untuk libasneu.so.1 sudah disediakan oleh FMS dan kita tinggal mengarahkannya. Pertama-tama buat file adobe_fms.conf di folder /etc/ld.so.conf.d kemudian file tersebut isi dengan path ke folder FMS

cd /etc/ld.so.conf.d
vim adobe_fms.conf
isi dengan /opt/adobe/fms

untuk menjalankan konfigurasinya jalankan perintah ldconfig

ldconfig
dan
ldd /opt/adobe/fms/fmscore
untuk mengecek hasil konfigurasi

jika benar maka akan muncul tampilan seperti ini :

 
        linux-gate.so.1 =>  (0xb80af000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb8090000)
        libnspr4.so => /usr/lib/libnspr4.so (0xb805a000)
        libplc4.so => /usr/lib/libplc4.so (0xb8054000)
        libplds4.so => /usr/lib/libplds4.so (0xb8050000)
        libasneu.so.1 => /opt/adobe/fms/libasneu.so.1 (0xb8047000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb803e000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb803a000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7f4b000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7f24000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7f15000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7db2000)
        /lib/ld-linux.so.2 (0xb80b0000)

setelah itu coba jalankan FMS nya sekarang

/etc/init.d/fms start

jika terjadi error / tidak jalan maka anda harus menjalankan perintah-perintah lagi dibawah ini

cd /usr/lib/
ln -s libcrypto.so.0.9.8 libcrypto.so.4
ln -s libssl.so.0.9.8 libssl.so.4

trus sekarang coba jalankan lagi /etc/init.d/fms start dan seharusnya sekarang semuanya sudah berjalan dengan baik :)

Melihat pemakaian hard disk di Linux/Unix

Jika kita menggunakan operating system Windows pasti dapat dengan mudahnya mencek pemakaian hard disk komputer kita melalui My Computer. Tapi bagaimana jika kita harus mengecek pemakaian hard disk ketika kita diharuskan memakai Linux Server atau Unix Server.

Untuk mengecek pemakaian hard disk di Linux/Unix kita dapat menggunakan beberapa perintah yaitu : ( gwa mengetesnya di server Sun Solaris )

1
df

jika kita menggunakan perintah df maka akan keluar tampilan kira-kira seperti ini :

1
2
3
4
5
6
7
8
9
10
11
/                  (/dev/dsk/c1t0d0s0 ): 2326264 blocks   444933 files
/devices           (/devices          ):       0 blocks        0 files
/system/contract   (ctfs              ):       0 blocks 2147483610 files
/proc              (proc              ):       0 blocks    29959 files
/etc/mnttab        (mnttab            ):       0 blocks        0 files
/etc/svc/volatile  (swap              ): 3997376 blocks   293539 files
/system/object     (objfs             ):       0 blocks 2147483464 files
/dev/fd            (fd                ):       0 blocks        0 files
/tmp               (swap              ): 3997376 blocks   293539 files
/var/run           (swap              ): 3997376 blocks   293539 files
/export/home       (/dev/dsk/c1t0d0s7 ):59435344 blocks  3683313 files

dari perintah tersebut dapat kita lihat pemakaian hard disknya, tetapi kalau cuma begitu saja agak sulit untuk membacanya. Oleh karena itu kita menggunakan tambahan option yaitu :

1
df -h

dengan menjalankan perintah tersebut maka akan keluar tampilan seperti ini :

1
2
3
4
5
6
7
8
9
10
11
12
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c1t0d0s0      4.5G   3.4G   1.1G    77%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   1.9G   968K   1.9G     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
fd                       0K     0K     0K     0%    /dev/fd
swap                   1.9G     0K   1.9G     0%    /tmp
swap                   1.9G    32K   1.9G     1%    /var/run
/dev/dsk/c1t0d0s7       28G    31M    28G     1%    /export/home

dari disitu sudah lebih terlihat berapa pemakaian hard disk dalam ukuran :

  • K ( KiloByte )
  • M ( MegaByte )
  • G ( Gigabyte )

Namun perintah di atas cuma memperlihatkan ukuran dari directory utamanya saja ( tidak menampilkan detail pemakaian dari masing-masing folder ). Maka kita akan menggunakan perintah satu lagi untuk mengecek pemakaian dari masing-masing folder yaitu dengan menggunakan perintah :

1
du -sh <nama folder yang mau di cek>

contoh pemakaiannya :

1
2
du -sh /
3.7G

kalau untuk melist semua folder2nya cukup menambahkan tanda * di depannya menjadi seperti ini :

1
du -sh /*

maka hasil yang akan dikeluarkan kira-kira seperti ini :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
26K   /TT_DB
   1K   /bin
   3K   /cdrom
   1K   /core
   2K   /core.svc.configd.1251605478.9
   2K   /core.svc.configd.1251606613.9
 347K   /dev
 134K   /devices
  49M   /etc
 2.2M   /export
   0K   /home
  14M   /instaler
  27M   /kernel
  24M   /lib
   8K   /lost+found
   1K   /mnt
  45M   /mysql-connector-odbc-5.1.4-solaris10-sparc-64bit
   0K   /net
  98M   /opt
  17M   /platform
 300M   /proc
 1.3M   /sbin
 3.6M   /system
  24K   /tmp
 2.9G   /usr
 295M   /var
   0K   /vol

Perintah-perintah diatas sangat berguna kalau misalnya kita harus mencari kenapa tiba-tiba pemakaian hard disk kita menjadi 99% ( yang kebanyakan disebabkan oleh folder logs yang tiba-tiba membesar ). Semoga berguna :)

Koneksi ke Microsoft SQL Server dengan PHP di FreeBSD

Beberapa hari yang lalu gwa melakukan perpindahan server Binus Access ke server baru yang menggunakan FreeBSD ( sebelumnya menggunaka Ubuntu Server 8.04 ). Setelah melakukan konfigurasi-konfigurasi dan beberapa persiapan yaitu :

  • Backup database dan file website Binus Access
  • Konfigurasi Nginx ( web servernya ganti Nginx ) agar bisa membaca mod_rewrite
  • Setting NFS dari server asterix ke server Binus Access
  • Setting IP
  • Beberapa settingan kecil lainnya

Jadi setelah dirasa semua persiapan sudah kelar, akhirnya perpindahan server dilakukan yaitu mencabut kabel LAN di server lama dan mencoloknya di server baru ( yap pindahin server cuma begitu saja ). Nah setelah gwa melakukan perpindahan server gwa pun mencoba semua fitur-fitur yang ada di binus-access satu persatu apakah ada yang ga jalan. Ternyata eh ternyata pas gwa tes registrasi untuk user baru terjadilah error dimana yang kalau gwa telusuri dikarenakan server tersebut tidak dapat mengakses server binusmaya ( menggunakan mssql ).

Jadi gwa pun mulai mencek dengan menggunakan phpinfo(); apakah extension mssql sudah terinstall di server FreeBSD tersebut atau blum ( karena seingat gwa pas nginstall php-fpm extension mssql sudah gwa aktifkan ), pas gwa cek ternyata extension mssql sudah terinstall dengan benarnya ( berarti tidak ada kesalahan dengan extension mssql.

Setelah itu gwa pun mulai searching di google dan akhirnya ketemu sebuah artikel yang menyebutkan tentang FreeTDS, gwa sih kurang ngerti juga tentang FreeTDS tapi kalau artikel itu bilang kalau mau connect mssql menggunakan FreeBSD harus menggunakan FreeTDS ini. Oleh karena itu tanpa banyak cing cong langsung saja gwa install FreeTDS lewat ports FreeBSD, neh syntaxnya :

cd /usr/ports/databases/freetds
make install clean

Setelah menginstall FreeTDS langsung saja config freetds.confnya yang terletak di /usr/local/etc/freetds.conf ini isinya config freetds gwa :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#
#
#   $Id: freetds.conf,v 1.11 2005/12/05 21:34:12 freddy77 Exp $
#
# The freetds.conf file is a replacement for the original interfaces
# file developed by Sybase.  You may use either this or the interfaces
# file, but not both.
#
# FreeTDS will search for a conf file in the following order:
#
#     1) check if a file was set programatically via dbsetifile() and
#        is in .conf format, if so use that,
#
#     2) otherwise, if env variable FREETDSCONF specifies a properly 
#        formatted config file, use it,
#
#     3) otherwise, look in ~/.freetds.conf,
#
#     4) otherwise, look in @sysconfdir@/freetds.conf
#
# If FreeTDS has found no suitable conf file it will then search for
# an interfaces file in the following order:
#
#     1) check if a file was set programatically via dbsetifile() and 
#        is in interfaces format, if so use that,
#
#     2) look in ~/.interfaces
#
#     3) look in $SYBASE/interfaces (where $SYBASE is an environment
#        variable)
#
# Only hostname, port number, and protocol version can be specified
# using the interfaces format.
#
# The conf file format follows a modified Samba style layout.  There
# is a [global] section which will affect all database servers and
# basic program behaviour, and a section headed with the database
# server's name which will have settings which override the global
# ones.
#
# Note that environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, 
# and TDSHOST will override values set by a .conf or .interfaces file.
#
# To review the processing of the above, set env variable TDSDUMPCONFIG
# to a file name to log configuration processing.
#
# Global settings, any value here may be overridden by a database
# server specific section
[global]
        # TDS protocol version
	tds version = 4.2
 
;	initial block size = 512
 
	# uses some fixes required for some bugged MSSQL 7.0 server that
	# return invalid data to big endian clients
	# NOTE TDS version 7.0 or 8.0 should be used instead
;	swap broken dates = no
;	swap broken money = no
 
	# Whether to write a TDSDUMP file for diagnostic purposes
	# (setting this to /tmp is insecure on a multi-user system)
;	dump file = /tmp/freetds.log
;	debug flags = 0xffff
 
	# Command and connection timeouts
;	timeout = 10
;	connect timeout = 10
 
	# If you get out of memory errors, it may mean that your client
	# is trying to allocate a huge buffer for a TEXT field.  
	# (Microsoft servers sometimes pretend TEXT columns are
	# 4 GB wide!)   If you have this problem, try setting 
	# 'text size' to a more reasonable limit 
	text size = 64512
 
# This is a Sybase hosted database server, if you are directly on the
# net you can use it to test.
[JDBC]
	host = 192.138.151.39
	port = 4444
	tds version = 5.0
 
# The same server, using TDS 4.2.  Used in configuration examples for the
# pool server, since the pool server supports only TDS 4.2.
[JDBC_42]
	host = 192.138.151.39
	port = 4444
	tds version = 4.2
 
# The client connecting to the pool server will use this to find its
# listening socket.  This entry assumes that the client is on the same
# system as the pool server.
[mypool]
	host = 127.0.0.1
	port = 5000
	tds version = 4.2
 
# A typical Microsoft SQL Server 7.0 configuration	
;[MyServer70]
;	host = ntmachine.domain.com
;	port = 1433
;	tds version = 7.0
 
# A typical Microsoft SQL Server 2000 configuration
[stored]
	host = 10.21.50.16
	port = 1433
	tds version = 8.0
 
# A typical Microsoft SQL Server 6.x configuration	
;[MyServer65]
;	host = ntmachine.domain.com
;	port = 1433
;	tds version = 4.2
<pre>
 
jadi buat settingan mssql buat server binusmaya itu gwa letakin di bagian ini :
<pre lang="bash" line="1">
# A typical Microsoft SQL Server 2000 configuration
[stored]
	host = xx.xx.xx.xx
	port = 1433
	tds version = 8.0

ganti tulisan xx.xx.xx.xx dengan ip server SQL Server nya. Nah sekarang saatnya mencoba melakukan koneksi ( ada sedikit perbedaan cara melakukan koneksi ) begini contoh codingnya dalam PHP :

1
2
3
4
$host = "stored";
$user = "yourusername";
$pass = "yourpassword";
$db = mssql_connect($host,$user,$pass) or die ("Unable to connect to mssql databases");

Jadi perbedaannya adalah $host yang harus diisi dengan nama yang ada set di freetds.conf tadi, jadi jika pada freetds.conf ada menset namanya menjadi “mssql” maka pada host anda ubah menjadi “mssql”. Kira-kira begitulah caranya yang cukup membuat gwa pusing selama 2 jam mencari-cari caranya. Lanjut ngejunk lagi ah :P

Setting mod_rewrite atau SEF Joomla di Nginx

Yap sambil menunggu server World of Warcraft yang tak kunjung up-up gwa buat tutorial sedikit tentang setting mod_rewrite Joomla di Nginx. Sudah pada tau Nginx ? kalau belum tau gwa kasih tau dah. Nginx itu adalah salah satu web server seperti Apache, Lighttpd, Apache Tomcat, Jetty, IIS, Zeus dan lainnya. Nginx ini ( dibacanya Engine X ) kabarnya sih lebih cepat dan stabil dibandingkan Apache yang sudah tersohor sebagai server PHP. Untuk detail lengkap tentang fitur-fiturnya silakan baca link ini.

Kalau pengen liat perbandingan kecepatannya dapat googling sendiri soalnya gwa juga blom coba ngetes kecepatannya soalnya gwa cuma pengen ngetes aja bedanya makai Nginx dan Lighttpd. Setelah gwa menggunakan kedua web server yang katanya lebih “cepat” dari Apache tersebut gwa menemukan salah satu fitur penting yang kurang yaitu kemampuan kedua web server tersebut untuk membaca file .htaccess, dan itu artinya apa ? itu artinya kita tidak bisa langsung memakai fitur-fitur mod_rewrite yang sudah disediakan engine-engine dan framework-framework seperti CakePHP, Joomla, dan WordPress.

Tapi untunglah teknologi sudah maju, cukup search-search dikit ternyata langsung dapat deh tutorial mod_rewrite Joomla di Nginx. Tapi walaupun teknologi sudah maju tapi ternyata tutorial yang didapat tidak cukup maju ( alias dicoba-coba ga jalan ). Jadi daripada ntar ada orang yang bernasib sama kek gwa makanya dengan senang hati gwa bikin ini tutorial hohoho. Ya udah kita back to topic tar kelamaan out of topic.

Nah, jadi untuk membuat mod_rewrite atau fitur SEF Joomla jalan di Nginx kita hanya perlu membuat rulesnya dan dengan sedikit tricky way kita bisa buat semua berjalan seperti di Apache. Kira-kira begini settingan nginx.conf gwa ( gwa ga bakal jelasin cara nginstall Nginx dan setting PHP ) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
 
    server {
        listen       80;
        server_name  binus-access.com v2.binus-access.com;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
	location / {
		root   /usr/local/www/data;
		index  index.html index.htm index.php;
		error_page 404 = @joomla; 
	}
 
	location @joomla { 
		rewrite ^(.*)$ /index.php?q=$1 last;
	}
 
        #error_page  404              /404.html;
 
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }
 
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
 
        location ~ \.php$ {
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME /usr/local/www/data$fastcgi_script_name;
		include fastcgi_params;	
        }
 
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 
#	location ~ \.php$ {
#            root           html;
#            fastcgi_pass   127.0.0.1:9000;
#            fastcgi_index  index.php;
#            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#            include        fastcgi_params;
#        }
 
         #deny access to .htaccess files, if Apache's document root
         #concurs with nginx's one
 
   #     location ~ /\.ht {
   #         deny  all;
   #   }
    }
 
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
 
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
 
 
    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;
 
    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;
 
    #    ssl_session_timeout  5m;
 
    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    #    ssl_prefer_server_ciphers   on;
 
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
 
}
<pre>
 
Jadi kalau dilihat-lihat dari settingan nginx.conf gwa, cuma ada 2 hal bagian yang harus diperhatikan yaitu bagian ini :
<pre lang="bash" line="1">
	location / {
		root   /usr/local/www/data;
		index  index.html index.htm index.php;
		error_page 404 = @joomla; 
	}
 
	location @joomla { 
		rewrite ^(.*)$ /index.php?q=$1 last;
	}

Kalau ditranslate kira-kira bacanya begini : jika ada error page 404 maka dia akan set rules menjadi @joomla. Semoga tutorial ini berguna, kalau ga jalan coba dilihat-lihat dolo settingannya lagi soalnya TESTED dan WORKS ( silakan ke www.binus-access.com ) itu adalah web yang pakai Nginx. Btw, selain itu ada beberapa web besar yang menggunakan Nginx juga yaitu Kaskus dan WordPress. Jadi itu juga menambah keyakinan gwa untuk menggunakan Nginx ini. Sekian tutorial dari gwa, kalau ada pertanyaan comment ato add YM aja di channel_life.

Ubuntu 9.04 Jaunty Jackalope

Hmmm sebenarnya hari ini lagi malas nulis-nulis sesuatu… Badan ini rasanya malas banget, pikiran lagi ruwet banget… seperti ada yang muter-muter di dalam kepala, mungkin gwa lagi ngidam kali ya ( halah ! )

Yah intinya hari ini rasanya madesu (masa depan suram) sekali… mungkin kata populernya lagi melan mungkin ya… Pokoknya hari ini bawaannya malas banget dan merasa gimana gitu… yah mungkin besok lebih baik lagi deh rasanya…

Nah makanya untuk menghilangkan rasa madesu ini, iseng-iseng pengen review sedikit tentang linux versi terbaru ( tadi sih sempat mikir lebih baik main dota daripada review ubuntu 9.04). Tapi ternyata Tuhan masih beritikat baik untuk mengembalikan gwa ke jalan yang benar….

Ya sudah, daripada ntar malah jadi ajang curhat lebih baik gwa mulai reviewnya… Jadi sekarang gwa bakal review tentang ubuntu 9.04 ( FYI gwa sudah makai ubuntu itu sejak ubuntu versi 8.04 ) jadi sebenarnya gwa blum punya kapabilitas buat nulis review tentang ubuntu sih… ( tapi daripada gwa melan2 ga jelas bagusan gwa nulis sesuatu yang berguna… hohoho jadi curhat lagi zzzz )

Jadi perjalanan gwa untuk mencoba Ubuntu 9.04 ini dimulai dengan nongkrongin channel #ubuntu-release di server irc.freenode.net pada tanggal 24 April kemarin… Ternyata pada saat gwa masuk ( sekitar jam 11 siang WIB ) channel itu sudah dipenuhi oleh kurang lebih 300 orang ( tapi yang berisik tanya2 kapan keluarnya sih paling cuman 20 orang )… Jadi banyak insiden yang terjadi di channel #ubuntu-release… dimulai dari ribut-ribut sama bot IRC… ribut sama OP di channel… sampai ada yang posting-posting link downloadnya ( padahal di websitenya blum ada linknya ) tapi pas gwa coba itu link bisa jalan… tapi malas sih download dari international ( bagusan dari server lokal yaitu dari kambing UI )

Setelah menunggu berjam-jam akhirnya ubuntu 9.04 resmi keluar sekitar jam 6 sore WIB tanggal 24 april… Tapi tetep aja gwa ga download saat itu juga ( maklum internet kos2an cuma 20kb/s )… Jadi gwa cuma nunggu selama lebih dari 5 jam cuma buat melihat para bule2 di channel #ubuntu-release ngomong “I am proud to give you Ubuntu 9.04″ bener2 wasting time bener ( tapi menarik sih, lucu2 gimana gitu… hohoho makin malam makin ga jelas… ya udah BTT )..

Intinya gwa mendownload Ubuntu 9.04 itu malamnya dari server UI ( kambing.ui.edu ) server lokal bro… kira-kira jam 8an gitu… pertama-tama sempet ragu jangan2 yang gwa download itu RC version… alias release candidate yang masih banyak bug… tapi pas dicek-cek lagi ternyata bener… jadi mulai dah download dari server lokal ( kalo lokal dapat 40kb/s ) lumayan la…

Trus tinggal tidur… besok baru mulai deh install Ubuntu 9.04… dimulai dari burn ISO ke dalam CD… trus restart PC… trus ganti Boot Sequence… masukin cd… trus install deh…

Sedikit banyak menu install Ubuntu 9.04 ini tidak berubah dari Ubuntu 8.04 tapi dalam langkah-langkah penginstallan banyak yang berubah.. mulai dari interface pemilihan zona waktu dan pemilihan jenis keyboard… Intinya design yang sekarang lebih yahud dah dari yang sebelumnya…

Setelah next-next dan yes yes ( install linux sekarang tinggal next-next dan yes yes ) akhirnya berhasil install ubuntu 9.04 di komputer… mulai deh restart komputer… pas pertama restart komputer ternyata muncul error message soal GRUB error ( Grub itu buat atur dual booting di linux )…

Ternyata problemnya karena gwa install ubuntunya di hard disk kedua dan dia install Grub itu di hard disk pertama… jadi gwa musti ganti boot sequence ke hard disk yang pertama… trus jalan deh… Abis itu muncul deh loading screen ubuntu 9.04 yang baru ( keren cuy yang baru… ga sih biasa aja :P )

Beberapa hal yang berubah jadi keren di ubuntu 9.04 adalah :

  • Loading Screen
  • Login Screen
  • Fitur pidginnya mirip yahoo messenger di Mac, bisa muncul online message di kiri atas layar ( keren deh pokoknya windows punya lewat..

Yah beberapa yang keren sih itu aja secara dari segi interface mirip2 dengan Ubuntu 8.04… neh gwa kasih screenshot… itu fitur yang gwa bilang keren… liat kanan atas gambar…

Pidgin

Hohoho jadi bagi para jawara2 windows yang pengen coba-coba ubuntu silakan saja… menurut gwa ubuntu adalah linux yang paling user friendly sekarang dan paling ringan ( dibanding install suse 4 dvd ) wakakakaka atau pakai slackware… beh bisa botak…

Hidup open source !~~! 5 star buat ubuntu deh ( hohoho semua review gwa kasih 5 star, ga pernah kurang ) + brb utak atik ubuntu lagi…