php-fpm 沒有啟動指令碼怎麼辦

2022-11-22 10:00:32

php-fpm啟動指令碼的方法:1、建立自啟動檔案「/etc/init.d/php-fpm」;2、設定「php-fpm」服務,通過「chkconfig php-fpm on」設定234級別下啟動;3、通過「service php-fpm configtest」檢查組態檔即可。

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:

本教學操作環境:Windows7系統、PHP8.1版、Dell G3電腦。

php-fpm 沒有啟動指令碼怎麼辦?

php-fpm服務啟動指令碼的方法

這個我自己在用,沒問題,有三個path需要自己酌情修改。

先建立自啟動檔案:/etc/init.d/php-fpm

內容如下:

#! /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=${prefix}/var/run/php-fpm.pid


php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"


wait_for_pid () {
    try=0

    while test $try -lt 35 ; do

        case "$1" in
            'created')
            if [ -f "$2" ] ; then
                try=''
                break
            fi
            ;;

            'removed')
            if [ ! -f "$2" ] ; then
                try=''
                break
            fi
            ;;
        esac

        echo -n .
        try=`expr $try + 1`
        sleep 1

    done

}

case "$1" in
    start)
        echo -n "Starting php-fpm "

        $php_fpm_BIN --daemonize $php_opts

        if [ "$?" != 0 ] ; then
            echo " failed"
            exit 1
        fi

        wait_for_pid created $php_fpm_PID

        if [ -n "$try" ] ; then
            echo " failed"
            exit 1
        else
            echo " done"
        fi
    ;;

    stop)
        echo -n "Gracefully shutting down php-fpm "

        if [ ! -r $php_fpm_PID ] ; then
            echo "warning, no pid file found - php-fpm is not running ?"
            exit 1
        fi

        kill -QUIT `cat $php_fpm_PID`

        wait_for_pid removed $php_fpm_PID

        if [ -n "$try" ] ; then
            echo " failed. Use force-quit"
            exit 1
        else
            echo " done"
        fi
    ;;

    status)
        if [ ! -r $php_fpm_PID ] ; then
            echo "php-fpm is stopped"
            exit 0
        fi

        PID=`cat $php_fpm_PID`
        if ps -p $PID | grep -q $PID; then
            echo "php-fpm (pid $PID) is running..."
        else
            echo "php-fpm dead but pid file exists"
        fi
    ;;

    force-quit)
        echo -n "Terminating php-fpm "

        if [ ! -r $php_fpm_PID ] ; then
            echo "warning, no pid file found - php-fpm is not running ?"
            exit 1
        fi

        kill -TERM `cat $php_fpm_PID`

        wait_for_pid removed $php_fpm_PID

        if [ -n "$try" ] ; then
            echo " failed"
            exit 1
        else
            echo " done"
        fi
    ;;

    restart)
        $0 stop
        $0 start
    ;;

    reload)

        echo -n "Reload service php-fpm "

        if [ ! -r $php_fpm_PID ] ; then
            echo "warning, no pid file found - php-fpm is not running ?"
            exit 1
        fi

        kill -USR2 `cat $php_fpm_PID`

        echo " done"
    ;;

    *)
        echo "Usage: $0 {start|stop|force-quit|restart|reload|status}"
        exit 1
    ;;

esac
登入後複製

設定php-fpm服務

# 設定許可權
chmod 755 /etc/init.d/php-fpm
# php-fpm加入服務
chkconfig --add php-fpm
# php-fpm 234級別下設定為啟動
chkconfig php-fpm on
# 檢視php-fpm服務當前設定
chkconfig --list php-fpm
php-fpm         0:off   1:off   2:on    3:on    4:on    5:on    6:off
登入後複製

php-fpm使用方法

# 啟動
service php-fpm start
# 關閉
service php-fpm stop
# 重新啟動
service php-fpm restart
# 過載
service php-fpm reload
#檢查組態檔
service php-fpm configtest
登入後複製

指令碼說明

# Source function library.  
. /etc/rc.d/init.d/functions  
 
# Source networking configuration.  
. /etc/sysconfig/network
登入後複製

以上量行程式碼有人會疑問他們到底是做什麼的,'.'是source類似於程式中的include和require,將functions裡面的方法全部倒入到這邊,這邊程式便可以使用,例如這邊用到的daemon、status。第二行的network實際上就幾行,如下

NETWORKING=yes
HOSTNAME=E10162
登入後複製

將他們作為變數賦值,判斷網路卡是否啟動,如果你的nginx不走網路卡,其實網路這段可以去掉.

/etc/init.d/php-fpm
登入後複製

推薦學習:《》

以上就是php-fpm 沒有啟動指令碼怎麼辦的詳細內容,更多請關注TW511.COM其它相關文章!