编辑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>
转载请注明出处:
未经允许不得转载:lxfamn » php 启动 多版本共存