• php多实例



    介绍(本文是一个php版本多实例)

    Linux 上运行多个 PHP 实例是一种常见的配置,特别是在需要托管多个应用程序或网站,并且它们可能需要不同的 PHP 版本或配置时。以下是一种常见的方法来实现在 Linux 上运行多个 PHP 实例的介绍:

    1. 安装多个 PHP 版本:首先,您需要安装多个 PHP 版本。您可以使用您的发行版提供的软件包管理工具,如apt、yum或者从源代码编译安装多个 PHP 版本。确保每个 PHP 版本安装在不同的目录下,并且它们不会相互干扰。

    2. 配置不同的 PHP 实例:对于每个 PHP 版本,您需要创建不同的配置文件。通常情况下,PHP 配置文件位于 /etc/php//php.ini,您可以根据需要编辑这些文件,例如设置不同的扩展、内存限制等。

    3. 启动不同的 PHP-FPM 实例:PHP-FPM(FastCGI Process Manager)是一种常见的 PHP 进程管理器,它可以独立于 web 服务器运行,并且可以为每个 PHP 版本启动不同的实例。对于每个 PHP 版本,您需要创建一个独立的 PHP-FPM 配置文件,并使用不同的套接字(socket)或端口号来避免冲突。

    4. 配置 Web 服务器:最后,您需要配置您的 Web 服务器(如 Nginx 或 Apache)以使用不同的 PHP-FPM 实例。在您的虚拟主机或网站配置中,指定正确的套接字或端口号以与相应的 PHP 版本通信。

    5. 测试和调优:在完成配置后,确保测试每个 PHP 实例是否正常工作,并且您的应用程序或网站在每个 PHP 版本下都能正常运行。您可能需要调整 PHP 配置和 Web 服务器配置以获得最佳性能和稳定性。

    总的来说,通过安装多个 PHP 版本并配置不同的 PHP-FPM 实例,您可以在 Linux 上运行多个 PHP 实例,以满足不同应用程序或网站的需求,并且能够更灵活地管理和维护您的服务器环境

    安装php

    cd /usr/local/src/php-5.6.35/ext/ftp/
    /usr/local/php56/bin/phpize
    ./configure --with-php-config=/usr/local/php56/bin/php-config
    echo $?
    make
    echo $?
    make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ftp扩展

    vim /usr/local/php56/etc/php.ini
    extension=/usr/local/php56/lib/php/extensions/no-debug-non-zts-20131226/ftp.so
    
    
    • 1
    • 2
    • 3

    然后重启

    查看扩展是否安装成功

    /usr/local/php56/bin/php -m
    
    • 1

    php-fpm多实例(nginx+php-fpm)

    1.先把php-fpm停掉
    2.进入php-fpm的配置文件

      cd /usr/local/php56/etc/
    
    • 1

    复制php-fpm的配置文件
    例:php-fpm.conf进行复制
    php-fpm1.conf php-fpm2.conf php-fpm3.conf php-fpm4.conf php-fpm5.conf php-fpm6.conf php-fpm7.conf
    进入到php-fpm1.conf中进行修改 vim php-fpm1

       [global]
    	pid = /usr/local/php56/var/run/php-fpm.pid
    	error_log = /usr/local/php56/var/log/php-fpm.log
    	[www]
    	security.limit_extensions =.php .html .js .css .jpg .jpeg .gif .png .htm .ico
    	listen = /tmp/php1-fcgi.sock    #   (后续的1、2、3、4、5、6、7都进去把这里修改了)
    	listen.owner=nginx
    	listen.group=nginx
    	listen.mode=0666
    	user = php-fpm
    	group = php-fpm
    	pm = dynamic
    	pm.max_children = 50
    	pm.start_servers = 20
    	pm.min_spare_servers = 5
    	pm.max_spare_servers = 35
    	pm.max_requests = 500
    	rlimit_files = 1024
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    3.进入nginx的配置文件中,本文这是nginx虚拟配置文件
    /usr/local/nginx/conf/conf.d/进行修改
    vim vhost_as.conf
    增加一个代理

    	upstream php-fpm {
    			server unix:/tmp/php-fcgi.sock;
    			server unix:/tmp/php1-fcgi.sock;
    			server unix:/tmp/php2-fcgi.sock;
    			server unix:/tmp/php3-fcgi.sock;
    			server unix:/tmp/php4-fcgi.sock;
    			server unix:/tmp/php5-fcgi.sock;
    			server unix:/tmp/php6-fcgi.sock;
    			server unix:/tmp/php7-fcgi.sock;
    	}
       #  然后在下边的server里的location里边
    	        #fastcgi_pass   unix:/tmp/php-fcgi.sock;   注释掉
                fastcgi_pass   php-fpm; 增加的
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4.重新启动nginx
    5.启动php-fpm多实例

    /usr/local/php56/sbin/php-fpm -y /usr/local/php56/etc/php-fpm.conf
    /usr/local/php56/sbin/php-fpm -y /usr/local/php56/etc/php-fpm1.conf
    /usr/local/php56/sbin/php-fpm -y /usr/local/php56/etc/php-fpm2.conf
    ....
    # 以此类推
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    在浏览器地址栏键入URL按下回车之后会经历什么?
    git从入门到跑路
    在IDEA中如何用可视化界面操作数据库? 在idea中如何操作数据库? 在idea中如何像Navicat一样操作数据库?
    EVA: Visual Representation Fantasies from BAAI
    Boost Arm 交叉编译
    PHP设计模式初探 以前写的完整PPT!!!!!
    Python代码的编写运行方式简介
    HTML5-iframe内联框架、表单元素、功能组件
    Java:ApacheHttpClient连接寿命(timeToLive)未配置问题分析
    数字人解决方案——AniTalker声音驱动肖像生成生动多样的头部说话视频算法解析
  • 原文地址:https://blog.csdn.net/weixin_42434700/article/details/134256336