正常重启Lighttpd Web服务器
时间:2020-01-09 14:17:05 来源:igfitidea点击:
如何在Linux/UNIX操作系统下正常重启lighttpd + php fastcgi Web服务器?
您需要将SIGINT单发送到lighttpd进程。
只有在成功关闭客户端连接后,它才会关闭服务器,而不会中断连接。
这对于重新加载配置选项很有用。
如果您使用的是sysv样式脚本,请确保reload()如下所示:
#!/bin/bash
# only works under RHEL / Fedora / CentOS Linux
source /etc/init.d/functions
pidfile=/var/run/lighttpd.pid
prog=lighttpd
conf=/etc/lighttpd/lighttpd.conf
lighttpd=/usr/sbin/lighttpd
reload(){
echo -n $"Reloading $prog "
killproc -p $pidfile $prog -INT
start
local RETVAL=$?
echo
return $RETVAL
}
start() {
echo -n $"Starting $prog: "
daemon $lighttpd -f $conf
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $lighttpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
case "" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
fi
;;
reload)
reload
;;
status)
status $lighttpd
RETVAL=$?
;;
*)
echo $"Usage: # kill -INT $(cat /var/run/lighttpd.pid)
# lighttpd -f /etc/lighttpd.conf
{start|stop|restart|condrestart|reload|status}"
RETVAL=1
esac
exit $RETVAL
UNIX/Linux的命令行选项
如果您没有/init.d/或/rc.d/样式脚本,请使用以下过程。
您可以从命令行本身发送INT单并再次启动服务器:
2009-05-08 18:54:45: (server.c.1355) [note] graceful shutdown started 2009-05-08 18:54:45: (log.c.97) server started 2009-05-08 18:54:49: (server.c.1469) server stopped by UID = 0 PID = 957 2009-05-08 18:56:57: (log.c.97) server started
您应该在lighttpd错误日志文件中看到以下内容:
"socket" => "/tmp/php-cgi.socket" + var.PID
关于php fastcgi进程的说明
确保php套接字配置如下(如果没有以下配置,则在正常重启后将不会重新加载php):
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php-cgi.socket"+ var.PID,
"max-procs" => 1,
"idle-timeout" => 30,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "2",
"PHP_FCGI_MAX_REQUESTS" => "2000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
))
)
这是一个示例php5 fastcgi lighttpd.conf配置:
# /etc/init.d/lighttpd reload
关于RHEL/CentOS Linux init.d脚本的注释
大多数现代Linux发行版都带有启动/停止/重新启动并重新加载lighttpd的脚本:
reload() {
echo -n $"Reloading $prog: "
killproc $lighttpd -HUP
RETVAL=$?
echo
return $RETVAL
}
但是,您需要在RHEL/CentOS Linux下修补/etc/init.d/lighttpd。
查找reload():
reload() {
echo -n $"Reloading $prog: "
killproc $lighttpd -INT
RETVAL=$?
echo
return $RETVAL
}
替换成:
# /etc/init.d/lighttpd reload
Debian/Ubuntu Linux用户
如果您使用的是Debian/Ubuntu Linux,请执行:
##代码##
