zoukankan      html  css  js  c++  java
  • centos php nginx 添加到service

    1. nginx

       A. # vi /etc/init.d/nginx

       B.

    #!/bin/sh
    # Comments to support chkconfig on RedHat Linux
    # chkconfig: 2345 65 37
    # description: A nginx daemon.
                                                    
    set -e
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    DESC="nginx daemon"
    NAME=nginx
    DAEMON=/usr/local/nginx/sbin/$NAME
    SCRIPTNAME=/etc/init.d/$NAME
                                                    
    # If the daemon file is not found, terminate the script.
    test -x $DAEMON || exit 0
                                                    
    d_test() {
        $DAEMON -t
    }
    d_start() {
        $DAEMON || echo -n " already running"
    }
    d_stop() {
        $DAEMON -s quit || echo -n " not running"
    }
    d_reload() {
        $DAEMON -s reload || echo -n " could not reload"
    }
                                                    
    case "$1" in
        test)
          d_test
          echo "."
          ;;
        start)
          echo -n "Starting $DESC: $NAME"
          d_start
          echo "."
          ;;
        stop)
          echo -n "Stopping $DESC: $NAME"
          d_stop
          echo "."
          ;;
        reload)
          echo -n "Reloading $DESC configuration..."
          d_reload
          echo "reloaded."
          ;;
        restart)
          echo -n "Restarting $DESC: $NAME"
          d_stop
          # Sleep for two seconds before starting again, this should give the
          # Nginx daemon some time to perform a graceful stop.
          sleep 2
          d_start
          echo "."
          ;;
        *)
          echo "Usage: $SCRIPTNAME {test|start|stop|restart|reload}" >&2
          exit 3
          ;;
    esac
                                                    
    exit $?

       C.注册 nginx 服务

    chmod +x /etc/init.d/nginx
    
    
    
    chkconfig --add nginx
    
    
    
    chkconfig --level 2345 nginx on
    
    
    
    chkconfig --list nginx

    1. php-fpm

             1.配置php-fpm.conf(vi /usr/local/php/etc/php-fpm.conf),将 ;pid = run/php-fpm.pid 前的;去掉。

             2.cd /

             3.find -name init.d.php-fpm

             4.cp home/apps/web/php/php-5.6.2/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 该代码切勿复制,请根据您的存放地址保存

    注意

    如果你php-fpm放入service中会出现这种情况,

    采用

    /usr/local/php/sbin/php-fpm -y=/usr/local/php/etc/php-fpm.conf -c=/usr/local/php/etc/php.ini

    这种方式启动的phpinfo中 Loaded Configuration File 是有值的

    service php-fpm start 启动方式 Loaded Configuration File 是none

    这个问题我纠结了好久 最终发现在service php-fpm代码中 php的运行开启方式是不对的(我也布知道是否正确)

    将代码修改为

     vi  /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_ini_CONF=${prefix}/etc/php.ini
    
    
    php_opts="--fpm-config $php_fpm_CONF --pid $php_fpm_PID"
    php_start_opts="-c $php_ini_CONF  -y $php_fpm_CONF"
    
    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 $php_start_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

    红色部分为修改部分,最终运行结果成功,我估计是开启的方式的不同 导致 Loaded Configuration File 值是none

    如果有更好的解决办法,请大神留言

        C.添加服务

    chmod +x /etc/init.d/php-fpm
    
    
    
    chkconfig --add php-fpm
    
    
    
    chkconfig --level 2345 php-fpm on
    
    
    
    chkconfig --list php-fpm
  • 相关阅读:
    报错:maven 程序包org.junit不存在
    Sublime Text 3
    Win10使用技巧
    CookieHelper
    log4net
    文件导出 Aspose
    C# 数字证书加载 X509Certificate2
    前后端文件上传
    WebApi 后端文件传输至远程服务器
    aspnet_regiis.exe用法(备忘非自创)
  • 原文地址:https://www.cnblogs.com/nikolatesfei/p/5421886.html
Copyright © 2011-2022 走看看