服务器上的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/init
d/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/init
d/nginx start
/etc/init
d/nginx stop
/etc/init
d/nginx restart
/etc/init
d/nginx reload
二PHPFPM启动脚本/etc/initd/phpfpm
代码如下复制代码 #!/bin/bash
#
# Startup script for the PHP
FPM server
#
# chkconfig:
# description: PHP is an HTML
embedded scripting language
# processname: php
fpm
# config: /usr/local/php/etc/php
ini
# Source function library
/etc/rc
d/init
d/functions
PHP_PATH=/usr/local
DESC="php
fpm daemon"
NAME=php
fpm
# php
fpm路径
DAEMON=$PHP_PATH/php/sbin/$NAME
# 配置文件路径
CONFIGFILE=$PHP_PATH/php/etc/php
fpm
conf
# PID文件路径(在php
fpm
conf设置)
PIDFILE=$PHP_PATH/php/var/run/$NAME
pid
SCRIPTNAME=/etc/init
d/$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 " can
t 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/init
d/php
fpm
sudo /sbin/chkconfig php
fpm on
# 检查一下
sudo /sbin/chkconfig
list php
fpm
php
fpm
: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