编译安装nginx和php的后续工作


接上篇编译安装nginx和php

编译安装并配置之后nginx和php能跑起来了,但是启动还不是很方便,需要手动执行,这时就需要类似init.d脚本的东西了。

nginx的启动脚本

nginx官方网站上其实有。在这里。因为我用的是debian,所以看的是ubuntu的脚本。把脚本弄下来之后,还不能直接用,需要调整其中的部分配置,主要是nginx程序位置(下面第7行),nginx配置文件位置(第28行)nginx的PID文件位置(第14行)。其实一般init.d脚本都只要调整一下这三个参数就好了。

#------------------------------------------------------------------------------
#                               Consts
#------------------------------------------------------------------------------
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# change to /usr/local/nginx/sbin/nginx
DAEMON=/usr/local/sbin/nginx
 
PS="nginx"
PIDNAME="nginx"				#lets you do $PS-slave
PIDFILE=$PIDNAME.pid                    #pid file

# change to /usr/local/nginx/logs
PIDSPATH=/var/run
 
DESCRIPTION="Nginx Server..."
 
RUNAS=root                              #user to run as
 
SCRIPT_OK=0                             #ala error codes
SCRIPT_ERROR=1                          #ala error codes
TRUE=1                                  #boolean
FALSE=0                                 #boolean
 
lockfile=/var/lock/subsys/nginx

# default is OK
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

一般按照程序现有配置调整就OK了,不过个人觉得PID文件位于logs目录下面有点奇怪,所以我之后又调整了下PID文件的位置。nginx的PID文件位置需要在nginx的配置文件nginx.conf中修改。修改后的配置段如下,注意第8行:

user              www-data;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid /var/run/nginx.pid;

events {
    use                 epoll;
    worker_connections  1024;
}

修改之后记得修改init.d脚本对应的PID目录。当然,如果你觉得麻烦的话,不修改也没啥。只要保证nginx.pid在你指定的目录中就行了。

上面的nginx的init.d的脚本按照要求放在 /etc/init.d/ 目录下,脚本名为nginx,chmod +x下保证能运行,最后update-rc.d nginx defaults加入启动列表。

之后,你就可以输入service nginx start,service nginx stop,service nginx restart等命令了。

php-fpm的启动脚本

原理和nginx的init.d脚本是类似的,不过现成的php-fpm的启动脚本有点难找。个人最后是在这里找到的。

依样画葫芦修改程序文件位置,配置文件位置和PID文件位置,下面是我已经修改过的,注意13,16,17,18行。

#! /bin/sh

### BEGIN INIT INFO
# Provides:          php-fpm
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO

prefix=/usr/local/php
exec_prefix=${prefix}

php_fpm_BIN=${exec_prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=/var/run/php-fpm.pid


php_opts="--fpm-config $php_fpm_CONF"

和nginx一样,php-fpm的PID文件位置也是在配置文件中,注意第9行:

;;;;;;;;;;;;;;;;;;
; Global Options ;
;;;;;;;;;;;;;;;;;;

[global]
; Pid file
; Note: the default prefix is /usr/local/php5/var
; Default Value: none
pid = /var/run/php-fpm.pid

保存启动脚本为/etc/init.d/php-fpm,chmod +x增加执行权限,最后update-rc.d php-fpm defaults加入启动顺序。

至此为止nginx和php的编译安装基本上都OK了,启动也很方便了,给自己一点奖励吧。


One response to “编译安装nginx和php的后续工作”