Instalasi Nginx dari Source di Ubuntu Hardy
From wiki.ngadimin.org
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.
