Skip to content

Compile Nginx on Centos

June 30, 2012

1. Download Nginx source files
wget http://nginx.org/download/nginx-1.2.1.tar.gz

2. Uncompress
tar xvzf nginx-1.2.1.tar.gz
cd nginx-1.2.1

3. Compile
./configure --with-pcre --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_realip_module --with-http_gzip_static_module --with-http_flv_module --with-http_stub_status_module --prefix=/usr/local/nginx
make && make install

4. Create init script
touch /etc/init.d/nginx
vi /etc/init.d/nginx
and paste the following

#!/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: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/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="/usr/local/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/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

Change permissions and make it start at boot time
chmod +x /etc/init.d/nginx
Chkconfig
chkconfig nginx on

Commands:
/etc/init.d/nginx start
/etc/init.d/nginx stop
/etc/init.d/nginx restart
/etc/init.d/nginx reload
/etc/init.d/nginx status
/etc/init.d/nginx configtest

Advertisements
No comments yet

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: