如何实现PHP版本共存?

描述

由于一个服务器多至多个项目. 有些项目对php版本有不一样的需求 如何实现每个项目对应指定的PHP版本?

服务器环境

  • ubuntu

  • Nginx

  • MySQL

  • php.x (N个)

实现效果

www.demo.com -> 对应PHP7.x

a.demo.com -> 对应PHP5.x

b.demo.com -> 对应PHP4.x

阅读 3.5k
2 个回答

配置下让Nginx监听不同的端口或文件就可以实现了。大体思路如下:
因为Nginx是通过PHP-FastCGI与PHP交互的,然后,PHP-FastCGI运行后会通过文件、或本地端口两种方式进行监听,在Nginx中配置相应的FastCGI监听端口或文件即实现Nginx请求对PHP的解释。因此,Nginx中根据需求配置调用不同的PHP-FastCGI端口或文件,便实现不同版本PHP共存了。

修改php-fpm.conf,监听端口:

<value name="listen_address">127.0.0.1:8001</value>

或者

<value name="listen_address">/path/to/unix/socket</value>

修改好后,配置好php.ini相关的参数后重启一下
然后,再修改Nginx

location ~ .*.(php|php5)?$
    {
      fastcgi_pass 127.0.0.1:8001;
      fastcgi_index index.php;
      include fcgi.conf;
    }

就可以通过监听不同端口来实现,不同版本的php-fpm调用了。

装个宝塔集成环境,支持多PHP版本,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题