服务器上如何存在多个 PHP 版本环境?

2016-04-22 10:52:37 +08:00
 herozzm
之前公司服务器上采用了 lamp , PHP 是 5.2.17 ,放了很多只兼容 PHP5.2 的网站(要改成支持 lnmp , php5.6 不现实),现在服务器老化需要更换了,需要配置 lnmp 环境,因为要支持最新开发的其他网站系统。
那么问题来了,服务器只能用一台新服务器,老服务器要下架,我怎样在新服务器上将原来的老网站迁移过来,然后同时也支持 lnmp 的新网站系统
7397 次点击
所在节点    PHP
41 条回复
wizardoz
2016-04-22 13:10:14 +08:00
docker 感觉打开了新世界的大门
chaegumi
2016-04-22 13:25:41 +08:00
@herozzm

you know nothing 。

跑 php 的形式你都不了解

fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9002;
include fastcgi_params;
fastcgi_read_timeout 1200;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;

默认是 9000 ,你可以跑 9001 9002
herozzm
2016-04-22 13:29:02 +08:00
@chaegumi 看可是原来的是 Apache 模块加载 PHP 的,根本没有用 PHP-fpm
Wangxf
2016-04-22 13:35:56 +08:00
题主搜下 phpbrew 吧, php 版本管理的
Zzzzzzzzz
2016-04-22 13:42:10 +08:00
80 跑 nginx, A 域名反向代理监听另一个端口的 apache+mod_php5.2.17+mod_remoteip, B 域名正常服务器静态文和 fastcgi php5.6 。 不过建议把 5.2.17 的迁到高版本 php, 5.2 分支 php 官方停止安全维护五六年了。
chaegumi
2016-04-22 13:45:07 +08:00
@herozzm 不要纠结 apache 了,扔掉 apache 。 nginx 跑 php5.2 也可以,好像方法也一样
herozzm
2016-04-22 13:51:30 +08:00
@chaegumi Apache 上跑着上百个网站,针对 Apache 写了的伪静态各式各样,你让我扔掉,扔不掉啊
msg7086
2016-04-22 14:03:25 +08:00
@herozzm Nginx 反代 Apache 就好了。无非就是 LANMP 的架构。新系统运行在 Nginx 上就行。
而且这样迁移也方便,你可以一个一个把网站从 Apache 搬进 Nginx 里。(当然也可以就这么放在原处)
herozzm
2016-04-22 14:07:11 +08:00
@msg7086 原来的 lamp 耦合太高了,还有个虚拟主机管理系统在上面
msg7086
2016-04-22 14:09:24 +08:00
@herozzm 我说个恶心的做法。
装上 ESXi ,开俩虚拟机,做 p2v 把原来的环境打包进来,另一个做新环境,然后内网打通以后反代。
herozzm
2016-04-22 14:19:06 +08:00
@msg7086 开虚拟机 性能折扣了很多啊
msg7086
2016-04-22 14:36:48 +08:00
@herozzm 折扣了多少?对访问速度影响多大?
jarlyyn
2016-04-22 14:54:28 +08:00
docker
jarlyyn
2016-04-22 14:54:55 +08:00
@herozzm

前端 nginx 接管 80 端口
herozzm
2016-04-22 15:00:11 +08:00
@jarlyyn 你说的宿主安装 nginx 接管 80 ,然后安装一个 docker ,里面安装 lamp ?
walkman660
2016-04-22 17:20:25 +08:00
KVM 建 2 个虚拟机,桥接+NAT ,宿主机装 NGINX 只做反代,虚拟机该装什么装什么
不喜欢 docker
jarlyyn
2016-04-22 18:58:08 +08:00
@herozzm

对的

我公司的 gitlab 就是这样处理的。

gitlab 的 docker 自带 nginx,然后由我负责接管 443 的 Nginx 带上证书后统一转发。
cxbig
2016-04-22 23:24:03 +08:00
Docker
realpg
2016-04-23 05:27:36 +08:00
难道只有我觉得早跳槽早超生么?
freejishu
2016-04-23 08:46:08 +08:00
换大构架无缝几乎是不可能的,尤其是换引擎,除非原来的管理系统有 nginx 分支。

多版本实现可以参考 a 某 h(不是安利)的实现方法,监听不同的 sock ,但是要会写规则。

换引擎如果有伪静态那还比较麻烦把。。要重写规则。

瞬间觉得又是虚拟机解决方案了(笑)

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

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

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

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

© 2021 V2EX