• 技术文章 >后端开发 >PHP问题

    php-fpm 没有启动脚本怎么办

    藏色散人藏色散人2022-11-22 09:39:53原创174

    php-fpm启动脚本的方法:1、创建自启动文件“/etc/init.d/php-fpm”;2、配置“php-fpm”服务,通过“chkconfig php-fpm on”设置234级别下启动;3、通过“service php-fpm configtest”检查配置文件即可。

    本教程操作环境: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视频教程

    以上就是php-fpm 没有启动脚本怎么办的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php-fpm
    上一篇:为啥大部分网站都使用php 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊Nginx与php-fpm的通信机制,看看如何配置?• 整理总结nginx、php-fpm和mysql等的权限划分• 为什么要优化php-fpm?如何优化?• cgi、fast-cgi、php-fpm的关系(附流程图)
    1/1

    PHP中文网