请问, 各位大大, 如何使 php5.4 , PHP 5.6, php7 环境 在一台服务器上共存?

2017-08-28 00:25:18 +08:00
 jimduan

运维很渣的 PHP 新手, 请问, 现公司服务器 lnmp 环境, php 版本还是 5.4 的, 太老了, composer 一些包有的都跑不起来, 想升级到 5.6 或者 PHP7 ! 但是很多老项目运行在上面, 不敢, 轻易升级! Q1: 有没有什么办法? 老项目依旧在 5.4 下运行, 以后开发的新项目运行在 5.6 下或者 7 下, 他们能在一台服务器上 和谐共存? Q2: 最近, 关注到 docker, 是不是一个很好的解决方案呢?

4684 次点击
所在节点    PHP
28 条回复
Sikoay
2017-08-28 00:35:40 +08:00
配置 nginx 的 php-fpm ? 把对应的站点配置到对应的 PHP 版本就行了吧
Sanko
2017-08-28 00:36:16 +08:00
宝塔面板不知道行不行
jimduan
2017-08-28 00:37:21 +08:00
@Sikoay nginx 可以配置 多个 php-fpm 对应着不同 php 版本?
WordTian
2017-08-28 00:37:51 +08:00
对啊,不同版本的 php 监听不同的端口,在不同网站的 nginx 配置文件把 php 转发到对应版本的端口就行啊
jimduan
2017-08-28 00:38:45 +08:00
@Sanko 谢谢, 没怎么用过面板, 我 GOOGLE 下, 什么东东
jimduan
2017-08-28 00:40:11 +08:00
@WordTian 好的好的, 我去恶补下 , 相关的知识
Sikoay
2017-08-28 00:40:33 +08:00
@WordTian 对,就是这个
msg7086
2017-08-28 01:33:35 +08:00
docker 比较好点其实。
比起在宿主上折腾 3 个 PHP 还要保证他们不冲突(也就是势必要自己编译安装,自己创立配置文件等等),docker 是直接提供了 3 个新的操作系统运行环境,并且上面跑的是 3 个原生的 PHP 安装,比你自己折腾要方便。

PS: 我们有一个类似需求是在 Debian 9 里运行 Ubuntu 14.04 环境的程序,最后是用的 chroot 而不是 docker。
WordTian
2017-08-28 01:57:59 +08:00
不用自己编译安装啊,不同版本安装不冲突的。就比如 centos,安装 php7.1 是 yum install php71w-*,其他版本类似,每版本的包名都有区别。但就是都监听 9000 端口,需要改其他版本的监听端口。
ETiV
2017-08-28 02:08:55 +08:00
docker php apache 最简单了

外层 nginx 设置一个 http proxy 就可以用
wangxiyu191
2017-08-28 02:15:47 +08:00
如果用的是比较传统的部署方式,那也可以看看 lxc。感觉比 docker 容易适应一些。
kslr
2017-08-28 08:15:20 +08:00
如果监听 sock 是可以直接包安装
scofieldpeng
2017-08-28 08:17:58 +08:00
这不就是 docker 的应用场景?
dangyuluo
2017-08-28 08:55:46 +08:00
docker 是干嘛的。。。。
loadinger
2017-08-28 09:21:50 +08:00
或者编译一个 PHP7,然后把端口改为非 9000,对应着 nginx 改一下就可以了.
zgk
2017-08-28 09:25:49 +08:00
可以用不同的 prefix 编译不同版本的 PHP,然后在各自的 php-fpm 配置文件下监听不同的 unix socket,Nginx 根据不同的 URL 来做转发,还是可以的,就是文件权限所有者什么的要多费点心去配置
mcfog
2017-08-28 09:28:04 +08:00
不是我说啥,基本的编译,prefix,手动配置 fpm 这些看看 README 面向谷歌运维都搞不定的话,搞 docker 就是在给自己挖坑
ssoftlns
2017-08-28 09:39:00 +08:00
docker 是最佳实践
234747005
2017-08-28 09:59:48 +08:00
你现在这个情况并不适合用 docker,,
建议你还用 nginx,proxy_pass 到不同版本的 php 上面吧。
tszyh
2017-08-28 10:21:59 +08:00
安装到不同目录 然后用不同的端口就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/386222

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX