php-fpm定義成集羣資源時報錯解決方法

這是我在實驗中碰到的問題,我們在定義php-fpm爲資源的時候,用php程序包自帶的腳本會報錯。

筆者花了很多時間嘗試了各種辦法,最後找到了一位網友寫的腳本,可以解決。

腳本如下:

#!/bin/sh
#=======================================================================================
# php-fpm - this script start and stop the php-fpm daemon
#
# chkconfig 35 on
# description: php-fpm is a FastCGI web server.
# processname: php-fpm
# config: /usr/local/php/etc/php-fpm.conf
# pidfile: /var/run/php-fpm.pid
#=======================================================================================
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    
BINFILE="/usr/local/php/sbin/php-fpm"
CFGFILE="/usr/local/php/etc/php-fpm.conf"
PIDFILE="/var/run/php-fpm.pid"
LOCKFILE="/var/lock/php-fpm.lock"
    
RETVAL=0
    
start() {
    [[ -x $BINFILE ]] || exit 5
    [[ -f $CFGFILE ]] || exit 6
       
    if [[ `ps aux | grep php-fpm: | grep -v grep wc -l` -gt 0 ]]; then
        echo "The php-fpm is already running."
        return 1
    fi
       
    $BINFILE -t >/dev/null 2>&1
       
    if [[ $? -ne 0 ]]; then
        echo "The php-fpm configure has error."
        return 1
    fi
       
    echo -n "Starting php-fpm......"
    $BINFILE -y $CFGFILE -g ${PIDFILE}
    RETVAL=$?
    echo
    [[ $RETVAL -eq 0 ]] && touch $LOCKFILE
       
    return $RETVAL
}
    
stop() {
    if [[ `ps aux | grep php-fpm: | grep -v grep wc -l` -eq 0 ]]; then
        echo "The php-fpm is not running."
        return 1
    fi
       
    echo -n "Shutting down php-fpm......"
       
    if [[ -f $PIDFILE ]]; then
        kill -QUIT `cat ${PIDFILE}`
    else
        kill -QUIT `ps aux | grep php-fpm | awk '/master/{print $2}'`
    fi
       
    RETVAL=$?
    echo
    [[ $RETVAL -eq 0 ]] && rm -f $LOCKFILE $PIDFILE
       
    return $RETVAL
}
    
restart() {
    stop
    sleep 1
       
    while true
    do
        if [[ `ps aux | grep php-fpm: | grep -v grep wc -l` -eq 0 ]]; then
            start
            break
        fi
        sleep 1
    done
       
    RETVAL=$?
    echo
       
    return $RETVAL
}
    
reload() {
    if [[ `ps aux | grep php-fpm: | grep -v grep wc -l` -eq 0 ]]; then
        echo "The php-fpm is not running."
        return 1
    fi
       
    echo -n $"Reloading php-fpm......"
       
    if [[ -f $PIDFILE ]]; then
        kill -USR2 `cat ${PIDFILE}`
    else
        kill -USR2 `ps aux | grep php-fpm | awk '/master/{print $2}'`
    fi
       
    RETVAL=$?
    echo
       
    return $RETVAL
}
    
case "$1" in
start)
    start
    ;;
       
stop)
    stop
    ;;
       
restart)
    restart
    ;;
       
reload)
    reload
    ;;
       
*)
    echo "Usage: service php-fpm {start|stop|restart|reload}"
    RETVAL=1
esac
    
exit $RETVAL

此腳本出自 人生理想在於堅持不懈” 博客,請務必保留此出處http://sofar.blog.51cto.com/353572/1253208

將這個腳本替換掉php-fpm程序提供的腳本,然後在定義資源的時候不要使用資源監控(monitor)不然也會報錯,筆者的定義方式如下:

crm configure primitive php-fpm lsb:php-fpm 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章