En esta tercera parte voy a incluir los ficheros que he escrito para levantar los servicios de nginx y FastCGI al arrancar el sistema en Red Hat o en CentOS.
Lo primero he incluido un fichero en /usr/bin llamado phpfcgi basado en la configuración que muestran en este howto.
El contenido del fichero es el siguiente:
spawn-fcgi -f /opt/php/bin/php-cgi -s /tmp/fcgi.sock -u apache -C 50 -P "/var/run/phpfcgi.pid"
En este fichero simplemente indicamos cómo arrancamos php-cgi, que se cree un socket de unix, con qué usuario deben correr las instancias, el número de instancias y el pid que se debe crear.
Después me he basado en el fichero de arranque de lighttpd, y convenientemente modificado he escrito estos dos ficheros, el primero es para el arranque de nginx, y el segundo para el arranque de FastcGI. Si nginx no está arrancado, el segundo no arranca
Este es el fichero para arrancar nginx:
#!/bin/sh
#
# nginx Startup script for the nginx server
#
# chkconfig: - 85 15
# description: Nginx fast webserver with light system requirements
#
# processname: nginx
# config: /user/local/nginx/conf/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/ngnix.pid
#
# Note: pidfile is assumed to be created
# by nginx (config: server.pid-file).
# If not, uncomment 'pidof' line.
# Source function library
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/nginx ]; then
. /etc/sysconfig/nginx
fi
if [ -z "$NGINX_CONF_PATH" ]; then
NGINX_CONF_PATH="/usr/local/nginx/conf/nginx.conf"
fi
prog="nginx"
nginx="/usr/local/nginx/sbin/nginx"
RETVAL=0
RETVAL1=0
start() {
echo -n $"Starting $prog: "
daemon $nginx
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $nginx
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
reload() {
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
reload)
reload
;;
status)
status $nginx
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
RETVAL=1
esac
exit $RETVAL
Y para FastCGI:
#!/bin/sh
#
# fastcgi Startup script for the fastcgi server
#
# chkconfig: - 87 15
# description: start fastcgi
#
# processname: phpfcgi
# config: /etc/sysconfig/phpfcgi
# pidfile: /var/run/phpfcgi.pid
#
# Note: pidfile is assumed to be created
# by fastcgi (config: server.pid-file).
# If not, uncomment 'pidof' line.
# Source function library
. /etc/rc.d/init.d/functions
prog="phpfcgi"
phpfcgi="/usr/bin/phpfcgi"
RETVAL=0
[ -e /var/run/nginx.pid ] || exit 0
start() {
echo -n $"Starting $prog: "
daemon $phpfcgi
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $phpfcgi
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
reload)
stop
start
;;
status)
status $phpfcgi
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|reload|status}"
RETVAL=1
esac
exit $RETVAL
En fin, supongo que podría darle más vueltas, pero estos dos funcionan, ahora simplemente hay que añadirlos al arranque con chkinstall y cuidar de que no se arranque apache también.Primera parte, Segunda parte, Tercera parte, Cuarta parte
2 comentarios:
Pero es tan bueno este nginx?, yo he visto por ahí que lighttpd se utiliza bastante
Yo he utilizado el lighttpd, y el principal problema que encontraba es que no me escribía entradas en log de error de los ficheros no encontrados, incluso activando el debug-404. Puse un post en los foros oficiales y nadie me responde.
Además dice la gente por ahí que tiene bastantes leaks de memoria.
Lo que llevo utilizando nginx no me ha dado ningún problema
Publicar un comentario