Post Pic

Instalasi Nginx dari Source di CentOS 5

Instalasi nginx dari source di CentOS 5. Artikel ini akan menjelaskan cara instalasi, mulai dari paket yang diperlukan untuk proses kompilasi, proses kompilasi sampai dengan membuat skrip init agar nginx bisa dijalankan secara otomatis saat booting.


Paket Yang Diperlukan

Sebelumnya pastikan paket-paket development tools sudah terinstall.

sudo yum groupinstall 'Development Tools'

Instal juga pustaka yang diperlukan oleh nginx

sudo yum install pcre-devel zlib-devel openssl-devel

Download Source Instalasi Nginx

Pastikan Anda selalu memeriksa rilis stabil terbaru di website nginx. Untuk rilis terbaru saat tulisan ini dibuat.

wget http://sysoev.ru/nginx/nginx-0.7.61.tar.gz

Instalasi

Ekstrak,

tar zxvf nginx-0.7.61.tar.gz
cd nginx-0.7.61

Configure. Seperti biasa, instalasi dari source saya suka arahkan ke direktori /opt.

./configure --prefix=/opt/nginx --with-http_ssl_module \
        --http-log-path=/var/log/nginx/access.log \
        --error-log-path=/var/log/nginx/error.log

Kompile dan install,

make
sudo make install

Skrip Init

Buat skrip init di /etc/init.d/nginx

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
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /opt/nginx/conf/nginx.conf
# pidfile:     /opt/nginx/logs/nginx.pid
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
 
nginx="/opt/nginx/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
 
lockfile=/var/lock/subsys/nginx
 
start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}
 
stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}
 
restart() {
    configtest || return $?
    stop
    start
}
 
reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}
 
force_reload() {
    restart
}
 
configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}
 
rh_status() {
    status $prog
}
 
rh_status_q() {
    rh_status >/dev/null 2>&1
}
 
case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

Setelah itu, aktifkan untuk runlevel 3, 4 dan 5.

sudo chkconfig --level 345 nginx on

Lalu jalankan service nginx.

/etc/init.d/nginx start

Sekarang Anda sudah bisa mengakses default web dari ngix di http://ip.server.anda. Disana Anda akan mendapatkan halaman default seperti di bawah ini.

Nginx Default Page

Nginx Default Page

Mengkonfigurasi Logrotate

Jangan lupa untuk mengkonfigurasi logrotate, agar berkas log rutin di rotasi, dan tidak menghabiskan space di server Anda.

Buat berkas konfigurasi di /etc/logrotate.d/nginx

1
2
3
4
5
6
7
8
9
10
11
12
13
/var/log/nginx/*.log {
        daily
        missingok
        rotate 30
        compress
        delaycompress
        notifempty
        create 640 root root
        sharedscripts
        postrotate
                [ ! -f /opt/nginx/logs/nginx.pid ] || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
        endscript
}

Rangkuman

Sekarang Anda sudah memiliki instalasi nginx, yang bisa Anda konfigurasi untuk keperluan lanjut. Misal untuk hosting berkas statik, atau set proxy ke instalasi rails atau django atau aplikasi yang dijalankan via fast cgi lainnya.

Konfigurasi lebih lanjut akan dibahas dalam artikel lain.


4 Komentar

6 October 2009

pak mau nanya klo uuntuk koneksi ke database(ex:mysql) nya gmana …?? trus mo running PHP nya juga gmana

6 October 2009

Nginx tidak berkomunikasi langsung dengan database. Biasanya yang melakukan koneksi ke database adalah aplikasi. Jika aplikasi itu berbasiskan php, maka skrip php lah yang melakukan koneksi ke database, dan itu TIDAK ada hubungannya dengan nginx.

Kalau mau running php, salah satu caranya sudah saya tuliskan di Instalasi PHP sebagai FastCGI di Nginx.

12 February 2010

sory ni om nanya, kan tadi saya dah coba yang fast cgi, nah saya ada pertanyaan? gimana klo kita mempunyai sebuah cms seperti joomla atau drupal tapi saya menggunakan nginx sebagai web server nya…

trima kasih

2 March 2010

mas, saya mau tanya nginx udah saya install juga php sudah koneksi, terus untuk menjalankan web, folder web ditarug mana ? serta untuk membuka phpmyadmin guna import database gimana caranya ? trims