nginx开机启动
1.首先,在linux系统的/etc/init.d/目录下创建nginx文件
vim /etc/init.d/nginx
2.加入脚本

1 #!/bin/bash
2 # nginx Startup script for the Nginx HTTP Server
3 # it is v.0.0.2 version.
4 # chkconfig: - 85 15
5 # description: Nginx is a high-performance web and proxy server.
6 # It has a lot of features, but it's not for everyone.
7 # processname: nginx
8 # pidfile: /var/run/nginx.pid
9 # config: /usr/local/nginx/conf/nginx.conf
10 nginxd=/usr/local/nginx/sbin/nginx
11 nginx_config=/usr/local/nginx/conf/nginx.conf
12 nginx_pid=/var/run/nginx.pid
13 RETVAL=0
14 prog="nginx"
15 # Source function library.
16 . /etc/rc.d/init.d/functions
17 # Source networking configuration.
18 . /etc/sysconfig/network
19 # Check that networking is up.
20 [ ${NETWORKING} = "no" ] && exit 0
21 [ -x $nginxd ] || exit 0
22 # Start nginx daemons functions.
23 start() {
24 if [ -e $nginx_pid ];then
25 echo "nginx already running...."
26 exit 1
27 fi
28 echo -n $"Starting $prog: "
29 daemon $nginxd -c ${nginx_config}
30 RETVAL=$?
31 echo
32 [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
33 return $RETVAL
34 }
35 # Stop nginx daemons functions.
36 stop() {
37 echo -n $"Stopping $prog: "
38 killproc $nginxd
39 RETVAL=$?
40 echo
41 [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
42 }
43 # reload nginx service functions.
44 reload() {
45 echo -n $"Reloading $prog: "
46 #kill -HUP `cat ${nginx_pid}`
47 killproc $nginxd -HUP
48 RETVAL=$?
49 echo
50 }
51 # See how we were called.
52 case "$1" in
53 start)
54 start
55 ;;
56 stop)
57 stop
58 ;;
59 reload)
60 reload
61 ;;
62 restart)
63 stop
64 start
65 ;;
66 status)
67 status $prog
68 RETVAL=$?
69 ;;
70 *)
71 echo $"Usage: $prog {start|stop|restart|reload|status|help}"
72 exit 1
73 esac
74 exit $RETVAL
或者脚本:

1 #!/bin/bash
2 # nginx Startup script for the Nginx HTTP Server
3 # it is v.0.0.2 version.
4 # chkconfig: - 85 15
5 # description: Nginx is a high-performance web and proxy server.
6 # It has a lot of features, but it's not for everyone.
7 # processname: nginx
8 # pidfile: /var/run/nginx.pid
9 # config: /usr/local/nginx/conf/nginx.conf
10 nginxd=/usr/local/nginx/sbin/nginx
11 nginx_config=/usr/local/nginx/conf/nginx.conf
12 nginx_pid=/var/run/nginx.pid
13 RETVAL=0
14 prog="nginx"
15 # Source function library.
16 . /etc/rc.d/init.d/functions
17 # Source networking configuration.
18 . /etc/sysconfig/network
19 # Check that networking is up.
20 [ ${NETWORKING} = "no" ] && exit 0
21 [ -x $nginxd ] || exit 0
22 # Start nginx daemons functions.
23 start() {
24 if [ -e $nginx_pid ];then
25 echo "nginx already running...."
26 exit 1
27 fi
28 echo -n $"Starting $prog: "
29 daemon $nginxd -c ${nginx_config}
30 RETVAL=$?
31 echo
32 [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
33 return $RETVAL
34 }
35 # Stop nginx daemons functions.
36 stop() {
37 echo -n $"Stopping $prog: "
38 killproc $nginxd
39 RETVAL=$?
40 echo
41 [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
42 }
43 # reload nginx service functions.
44 reload() {
45 echo -n $"Reloading $prog: "
46 #kill -HUP `cat ${nginx_pid}`
47 killproc $nginxd -HUP
48 RETVAL=$?
49 echo
50 }
51 # See how we were called.
52 case "$1" in
53 start)
54 start
55 ;;
56 stop)
57 stop
58 ;;
59 reload)
60 reload
61 ;;
62 restart)
63 stop
64 start
65 ;;
66 status)
67 status $prog
68 RETVAL=$?
69 ;;
70 *)
71 echo $"Usage: $prog {start|stop|restart|reload|status|help}"
72 exit 1
73 esac
源码来源于:https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/
注意其中
nginx=”/usr/sbin/nginx” 修改成nginx执行程序的路径。
NGINX_CONF_FILE=”/etc/nginx/nginx.conf” 修改成配置文件的路径。
3.设置文件权限
chmod a+x /etc/init.d/nginx
4.使用chkconfig进行管理
先将nginx服务加入chkconfig管理列表:
chkconfig --add /etc/init.d/nginx
加完这个之后,就可以使用service对nginx进行启动,重启等操作了。
service nginx start service nginx stop
注意:如果是刚配置好chkconfig管理,要多敲几次service nginx stop 命令(刚加入有可能稍等下,命令才有效)
5.设置终端模式开机启动:
chkconfig nginx on
php开机启动
前提需要正确配置php-fpm
vim /etc/init.d/php-fpm
内容如下

#!/bin/sh
# chkconfig: 2345 15 95
# description: PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation \
# with some additional features useful for sites of any size, especially busier sites.
# DateTime: 2016-09-20
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
phpfpm="/usr/local/php/sbin/php-fpm"
prog=$(basename ${phpfpm})
lockfile=/var/lock/subsys/phpfpm
start() {
[ -x ${phpfpm} ] || exit 5
echo -n $"Starting $prog: "
daemon ${phpfpm}
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc ${phpfpm} -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
${phpfpm} -t
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
status)
rh_status
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload|configtest}"
exit 2
esac
再就是加到开机启动项里面去
chkconfig --add php-fpm
然后启动
service php-fpm start // 启动 service php-fpm stop // 停止
故障一:权限被拒绝
env: /etc/init.d/php-fpm: Permission denied
解决办法:
把/etc/rc.d/init.d/php-fpm 权限改为0755 或者 chmod a+x /etc/init.d/php-fpm
故障二:php-fpm出现乱码(而且文件变的很大二十几兆)
解决办法:
1.备份当前php-fpm
2. 新建php-fpm
ssh > vim /etc/rc.d/init.d/php-fpm
3.输入代码:

#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
其他参考:
https://blog.csdn.net/u013870094/article/details/52463026
https://www.cnblogs.com/jimisun/p/8057156.html
来源:https://www.cnblogs.com/wesky/p/9053841.html
