php 启动 多版本共存

编辑php-fpm.conf

cd /usr/local/php8/etc
cp php-fpm.conf.default php-fpm.conf

通过fpm.pid来操作

上面的方式是php直接通过加载配置文件去运行,没有产生pid文件,可以开启使用pid,那么后面就不需要每次重启时都去 ps 查看PHP-fpm 进程号,可以直接通过php.fpm.pid 去查看

cat /usr/local/php/etc/php-fpm.conf

[global]
; Pid file
; Note: the default prefix is /usr/local/php/var
; Default Value: none
;pid = run/php-fpm.pid
#!/bin/bash
set -e

PHPVERSION=php8
NAME=php8-fpm
DAEMON=/usr/local/$PHPVERSION/sbin/php-fpm 
CONFIGFILE=/usr/local/$PHPVERSION/etc/php-fpm.conf
PIDFILE=/usr/local/$PHPVERSION/var/run/php-fpm.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

d_start() {
  $DAEMON || echo -n " already running"
}

d_stop() {
  kill -INT `cat $PIDFILE` || echo -n " not running"
}

d_reload() {
  kill -USR2 `cat $PIDFILE` || echo -n " can't reload"
}

case "$1" in
  start)
        echo -n "Starting $NAME is success"
        d_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $NAME is success"
        d_stop
        echo "."
        ;;
  reload)
        echo -n "Reloading $NAME configuration..."
        d_reload
        echo "reloaded."
  ;;
  restart)
        echo -n "Restarting $NAME is success"
        d_stop
        sleep 1
        d_start
        echo "."
        ;;
  *)
         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
         exit 3
        ;;
esac

修改权限

chmod 755 /etc/init.d/php7
chmod 755 /etc/init.d/php8

服务启动

启动服务:service php7 start ; service php8 start
停止服务:service php7 stop ; service php8 stop
重启服务:service php7 reload ; service php8 reload

5,给Apache安装mod_fcgid模块

这个模块可以使Apache增加对PHP多版本运行支持,这个模块也可以在Apache上下载。

[root@moc local]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
[root@moc local]# tar -zxvf mod_fcgid-2.3.9.tar.gz
[root@moc local]# cd mod_fcgid-2.3.9
[root@moc mod_fcgid-2.3.9]# APXS=/usr/local/apache2/bin/apxs ./configure.apxs
[root@moc mod_fcgid-2.3.9]# make && make install

httpd.conf apache参数配置


#load 
LoadModule fcgid_module modules/mod_fcgid.so
AddHandler fcgid-script .fcgi .php
# Set PHP_FCGI_MAX_REQUESTS to greater than or equal to FcgidMaxRequestsPerProcess
# to prevent php-cgi process from exiting before all requests completed
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
# Maximum requests a process should handle before it is terminated
FcgidMaxRequestsPerProcess 1000
# Maximum number of PHP processes
FcgidMaxProcesses 15
# Number of seconds of idle time before a php-cgi process is terminated
FcgidIOTimeout  120
FcgidIdleTimeout  120
#FcgiMaxRequestLen 2097152

虚拟机配置


<VirtualHost  10.0.3.122:7777> 
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2/htdocs/website5/public"
    ServerName mes.winhere.cn
    ServerAlias mes.winhere.cn
        FcgidInitialEnv PHPRC "/usr/local/php7/"
    FcgidWrapper "/usr/local/php7/bin/php-cgi" .php
    ErrorLog "logs/imoa.com.com-error_log"
    CustomLog "logs/imoa.com.com-access_log" common
     <Directory "/usr/local/apache2/htdocs/website5">
        Options Indexes ExecCGI

    </Directory>

</VirtualHost>

转载请注明出处:

转载自http://lxfamn.cn/blog

未经允许不得转载:lxfamn » php 启动 多版本共存

赞 (0) 打赏

置顶推荐

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏