php

位置:IT落伍者 >> php >> 浏览文章

Nginx和PHP-FPM的启动/重启脚本分享


发布日期:2022年01月22日
 
Nginx和PHP-FPM的启动/重启脚本分享
服务器上的Nginx和PHP都是源码编译安装的不像ubuntu一样有自带service启动脚本所以不支持类似以前的nginx (start|restart|stop|reload)了自己动手丰衣足食以下脚本应该在RHEL Fedora CentOS下都适用

Nginx启动脚本/etc/initd/ps the nginx daemon
#
# chkconfig:
# description: Nginx is an HTTP(S) server HTTP(S) reverse proxy and IMAP/POP proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginxconf
# pidfile: /usr/local/nginx/logs/nginxpid

# Source function library
/etc/rcd/initd/functions

# Source networking configuration
/etc/sysconfig/network

# Check that networking is up
[ "$NETWORKING" = "no" ] && exit

nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginxconf"

[ f /etc/sysconfig/nginx ] && /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

start() {
[ x $nginx ] || exit
[ f $NGINX_CONF_FILE ] || exit
echo n $"Starting $prog: "
daemon $nginx c $NGINX_CONF_FILE
retval=$?
echo
[ $retval eq ] && touch $lockfile
return $retval
}

stop() {
echo n $"Stopping $prog: "
killproc $prog QUIT
retval=$?
echo
[ $retval eq ] && rm f $lockfile
return $retval
}

restart() {
configtest || return $?
stop
sleep
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 >&
}

case "$" in
start)
rh_status_q && exit
$
;;
stop)
rh_status_q || exit
$
;;
restart|configtest)
$
;;
reload)
rh_status_q || exit
$
;;
forcereload)
force_reload
;;
status)
rh_status
;;
condrestart|tryrestart)
rh_status_q || exit
;;
*)
echo $"Usage: $ {start|stop|status|restart|condrestart|tryrestart|reload|forcereload|configtest}"
exit
esac
  

编辑好后保存执行以下命令

  代码如下复制代码    sudo chmod +x /etc/initd/nginx
sudo /sbin/chkconfig nginx on
# 检查一下
sudo /sbin/chkconfig list nginx
nginx :off :off :on :on :on :on :off
  

完成!可以使用以下命令管理Nginx了

  代码如下复制代码    service nginx start
service nginx stop
service nginx restart
service nginx reload

/etc/initd/nginx start
/etc/initd/nginx stop
/etc/initd/nginx restart
/etc/initd/nginx reload
  

PHPFPM启动脚本/etc/initd/phpfpm

  代码如下复制代码    #!/bin/bash
#
# Startup script for the PHPFPM server
#
# chkconfig:
# description: PHP is an HTMLembedded scripting language
# processname: phpfpm
# config: /usr/local/php/etc/phpini

# Source function library
/etc/rcd/initd/functions

PHP_PATH=/usr/local
DESC="phpfpm daemon"
NAME=phpfpm
# phpfpm路径
DAEMON=$PHP_PATH/php/sbin/$NAME
# 配置文件路径
CONFIGFILE=$PHP_PATH/php/etc/phpfpmconf
# PID文件路径(在phpfpmconf设置)
PIDFILE=$PHP_PATH/php/var/run/$NAMEpid
SCRIPTNAME=/etc/initd/$NAME

# Gracefully exit if the package has been removed
test x $DAEMON || exit

rh_start() {
$DAEMON y $CONFIGFILE || echo n " already running"
}

rh_stop() {
kill QUIT `cat $PIDFILE` || echo n " not running"
}

rh_reload() {
kill HUP `cat $PIDFILE` || echo n " cant reload"
}

case "$" in
start)
echo n "Starting $DESC: $NAME"
rh_start
echo ""
;;
stop)
echo n "Stopping $DESC: $NAME"
rh_stop
echo ""
;;
reload)
echo n "Reloading $DESC configuration"
rh_reload
echo "reloaded"
;;
restart)
echo n "Restarting $DESC: $NAME"
rh_stop
sleep
rh_start
echo ""
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&
exit
;;
esac
exit
  

编辑好后保存执行以下命令

  代码如下复制代码    sudo chmod +x /etc/initd/phpfpm
sudo /sbin/chkconfig phpfpm on
# 检查一下
sudo /sbin/chkconfig list phpfpm
phpfpm :off :off :on :on :on :on :off
  

完成!可以使用以下命令管理phpfpm了

  代码如下复制代码   

service phpfpm start
service phpfpm stop
service phpfpm restart
service phpfpm reload

/etc/initd/phpfpm start
/etc/initd/phpfpm stop
/etc/initd/phpfpm restart
/etc/initd/phpfpm reload

   

               

上一篇:mac下配置nginx+php+mysql方法说明

下一篇:php curl模仿ftp文件上传代码