正常重启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,请执行:
##代码##