Instalasi Nginx dari Source di Ubuntu Hardy

From wiki.ngadimin.org

Jump to: navigation, search

Contents


Paket nginx yang tersedia di repositori Ubuntu Hardy tergolong tua. Pada saat tulisan ini dibuat, versi yang ada di repo adalah seperti yang saya salin dari keluaran perintah di bawah ini:

apt-cache show nginx |grep Version
Version: 0.5.33-1

Dan jika menelusurinya di website nginx, versi tersebut sudah termasuk rilis legacy. Dan rilis stabil terakhir pada saat tulisan ini dibuat adalah 0.6.32. Karena perbedaan versi yang lumayan jauh, saya memutuskan untuk mencoba menginstal nginx dari source.

UPDATE: Contoh di update untuk versi 0.6.36.

Instalasi Paket yang Diperlukan Saat Kompilasi

sudo apt-get install build-essential libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev

Ambil Berkas Sumber

mkdir ~/sources
cd ~/sources
wget http://sysoev.ru/nginx/nginx-0.6.36.tar.gz
Catatan: Lihat http://nginx.net untuk versi terbaru. Yang dicontohkan di atas adalah versi stabil terakhir saat tulisan ini ditulis.

Instalasi

cd ~/sources
tar zxvf nginx-0.6.36.tar.gz
cd ~/sources/nginx-0.6.36

Untuk opsi yang akan dipilih saat mengkonfigurasi, sementara ini hanya mengaktifkan modul ssl (jaga-jaga jika nanti diperlukan). Lokasi instalasi nginx akan di arahkan ke /opt/nginx (ini adalah salah satu kebiasaan saya jika instalasi via sources dikumpulkan di 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

make make install

make
sudo make install

Skrip Init

Buat skrip init di /etc/init.d/nginx, seperti contoh di bawah ini:

 Berkas: /etc/init.d/nginx
#! /bin/sh

### BEGIN INIT INFO
# Provides:          nginx
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/nginx/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
        . /etc/default/nginx
fi

set -e

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start-stop-daemon --start --quiet --pidfile /opt/nginx/logs/$NAME.pid \
                --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --stop --quiet --pidfile /opt/nginx/logs/$NAME.pid \
                --exec $DAEMON
        echo "$NAME."
        ;;

  restart|force-reload)
        echo -n "Restarting $DESC: "
        start-stop-daemon --stop --quiet --pidfile \
                /opt/nginx/logs/$NAME.pid --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --pidfile \
                /opt/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
        echo "$NAME."
        ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile /opt/nginx/logs/$NAME.pid \
          --exec $DAEMON
      echo "$NAME."
      ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

Atur hak akses yang tepat.

sudo chmod 755 /etc/init.d/nginx

Jangan lupa untuk diaktifkan, agar nginx diaktifkan setiap kali booting.

sudo update-rc.d nginx defaults

Logrotate

Buat berkas /etc/logrotate.d/nginx isinya seperti di bawah ini:

 Berkas: /etc/logrotate.d/nginx
/var/log/nginx/*.log {
        daily
        missingok
        rotate 30
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                [ ! -f /opt/nginx/logs/nginx.pid ] || kill -USR1 `cat /opt/nginx/logs/nginx.pid`
        endscript
}

Test Instalasi Nginx

Pastikan tidak ada webserver lain yang lagi jalan (misalnya apache), lalu jalankan nginx.

sudo /etc/init.d/nginx start

Sekarang coba akses melalui web ke ip tempat nginx terinstal. Anda akan melihat tampilan sederhana, sebuah default welcome page dari nginx :)

Konfigurasi lebih lanjut, sementara silahkan baca-baca di wiki nginx.