接上篇编译安装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的后续工作”
[…] php-fpm实际上也需要一个init.d脚本。这里就不展开,详细的可以看这里。 […]