作者vicvicky (VICKY)
看板PHP
标题[请益] 请问PHP版本不同的解决之道
时间Thu Nov 7 16:20:20 2013
午安,
想请教大家一个问题,
我们公司请资讯公司建置一个网站,
现在要把整个资料库移置公司伺服器主机,
但因为我们使用的版本是5.3,
资讯公司要求5.2,否则会产生BUG,
在公司坚持要放在同一个伺服器主机,且主机环境PHP得5.3的情况下,
有何方法可以排除BUG或不同版本共存吗?
这应该会冲突吧?(灌了PHP 5.2以後原本吃5.3的网站都挂掉了@@)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.34.144.113
1F:推 Jerr:VM? 11/07 16:39
2F:→ up9cloud:换资讯公司XD? 11/07 17:00
3F:→ MOONRAKER:你讲挂的状况是app 5.3 > svr 5.2 公司网站依你描述是 11/07 17:18
4F:→ MOONRAKER:app 5.1 < svr 5.3 这两者有关联吗 11/07 17:19
5F:推 LaPass:换公司比较简单.... 11/07 17:22
※ 编辑: vicvicky 来自: 114.34.144.113 (11/07 17:25)
6F:→ vicvicky:误打成5.1,抱歉 11/07 17:26
7F:→ vicvicky:网站已经做好了,钱也付了,现在只是要移过来,不可能告 11/07 17:27
8F:→ vicvicky:诉他们"因为没办法装在我们主机上,所以我们要退钱"吧QQ 11/07 17:27
9F:→ vicvicky:VM是指虚拟系统吗? 11/07 17:28
10F:推 tkdmaf:我觉得怪怪的,感觉是你们的系统比较新。 11/07 17:42
11F:→ tkdmaf:理论上,5.3向下相容於5.2 11/07 17:42
12F:→ tkdmaf:但比较有可能产生BUG大多问题出在php.ini设定 11/07 17:43
13F:→ tkdmaf:通常最有可能是发生原本程式使用不严谨写法。 11/07 17:43
14F:→ tkdmaf:例如你的设定output_buffering是false 11/07 17:43
15F:→ tkdmaf: off才对 11/07 17:44
16F:→ tkdmaf:然後他们却设定成ON或是给数值(例:4096) 11/07 17:45
17F:→ tkdmaf:然後就把session_start()或是header()给他乱放 11/07 17:45
18F:→ tkdmaf:而其实呢,你把5.2的php.ini全照最严谨模式设定 11/07 17:46
19F:→ tkdmaf:别说5.3不能跑,就是5.2也照样不能跑。 11/07 17:46
20F:→ tkdmaf:常见情形就是其实他们是灌appserv 2.5.10...... 11/07 17:46
21F:→ tkdmaf:我公司的案子是在PHP5.3的环境下开发的。 11/07 17:47
22F:→ tkdmaf:但我自己架了一台CENTOS跑的是PHP5.5 11/07 17:47
23F:→ tkdmaf:可我整个专案移过去跑也没ERROR过。 11/07 17:48
24F:→ tkdmaf:你可以建议网管把你们的5.3设定档改成较宽松(较危险) 11/07 17:50
25F:→ tkdmaf:然後看看所谓5.2模式写出来的code能不能跑。 11/07 17:50
26F:→ tkdmaf:能跑的话............换一家公司吧。 11/07 17:50
27F:→ gname:这可不是向下相容可以解决的,不久前我们也碰到相同的事... 11/07 17:58
28F:→ gname:我们家的环境是5.3,但厂商的开发环境是5.2,程式码一放上来 11/07 17:59
29F:→ gname:log档就被塞爆了,没多久就倒站了,一整个无言... 11/07 18:00
30F:→ gname:後来我们把 LOG 档给厂商,他们看完後表示要修的东西太多,根 11/07 18:01
31F:→ gname:本修不完,而且也搬出合约中并无载明php版本,虽然我们用资安 11/07 18:02
32F:→ gname:去压,但是厂商吃定我们有验收时程压力(这案子搞烂了,我也会 11/07 18:03
33F:→ gname:倒大楣),最後鼻子摸着还是退回5.2版,让案子顺利结束. 11/07 18:04
34F:→ thitbbeb:php 5.2 & 5.3 只是有些函式的新旧交替?剩下的error应该 11/07 18:50
35F:→ thitbbeb:程式写得不够严谨 与版本无关吧 11/07 18:51
37F:推 tkdmaf:这时就要说,如果function和method很单纯一进一出 11/07 18:55
38F:→ tkdmaf:那要修问题就很简单了。 11/07 18:55
39F:→ tkdmaf:怕的是……他们使用一式到底的写法。这完全就难分难舍了。 11/07 18:56
40F:→ tkdmaf:写程式要是按功能类别独立开来不要混在一起写的话。 11/07 18:58
41F:→ tkdmaf:根本就不怕遇到这种版本异动的状况。 11/07 18:58
42F:→ tkdmaf:搞不好还可以判断版本来自动切换跑功能相同但程式码不同的 11/07 18:59
43F:→ tkdmaf:函式。 11/07 18:59
44F:→ alog:php5.2跟5.3的设计环境差太多 11/07 21:15
45F:→ alog:你们可以付点钱要求修正 11/07 21:16
46F:→ alog:因为这之间产生的资讯安全问题真的很麻烦,php5.2 的exploit 11/07 21:17
47F:→ alog:随随便便都可以弄垮伺服器 11/07 21:17
48F:→ danny8376:说共存解法吧 CGI类模式(CGI fastCGI)只要针对那部分 11/07 21:17
49F:→ danny8376:网站去调整改用5.2的PHP (另外装一份) 11/07 21:18
50F:→ alog:FASTCGI也要小心,因为之前也才爆出 exploit 11/07 21:18
51F:→ alog:我对这种不求上进的资讯公司还蛮感冒的-__ 11/07 21:19
52F:→ danny8376:不过只能5.2实在... 要更高版本还能接受... 11/07 21:19
53F:→ danny8376:跟fastCGI无关啊 只要是软体都会有exploit 11/07 21:20
54F:→ danny8376:这只是说真的无法就CGI另外给5.2的PHP去解译 11/07 21:20
55F:→ danny8376:不过个人是觉得这种厂商下次别找了... 11/07 21:21
56F:→ vicvicky:先谢谢各位前辈的回覆,虽然外行的我看了还是雾煞煞QQ 11/07 21:41
57F:→ vicvicky:目前我们只能想到的方法:(1)给他们5.2的环境(2)另外花钱 11/07 21:43
58F:→ vicvicky:但就担心tk大讲的问题,後续我们维护会很困难 11/07 21:46
59F:→ danny8376:www.php.net/manual/en/migration53.incompatible.php 11/07 22:02
60F:→ danny8376:5.2到5.3不支援的部分 11/07 22:02
61F:→ danny8376:不被支援的部分大多都是原本默许的不严谨写法 11/07 22:03
62F:→ danny8376:先了解厂商说的BUG到底是啥吧 11/07 22:04
63F:→ danny8376:感觉整个就是我用的是5.2 你要用5.3出事我不管的感觉 11/07 22:04
64F:→ danny8376:搞不好根本也没在5.3上面试跑过 11/07 22:05
66F:→ mirae:nginx + php-fpm(同时安装5.2及5.3起不同port) 11/08 00:38
67F:推 gpmm:楼上这招不错,不过要手动编译就是了 XD 11/08 00:52
68F:推 danny8376:本来就想推nginx+php-fpm 我还有win环境的php存在XDD 11/08 02:10
69F:→ danny8376:不过nginx不是必备啦www 11/08 02:10
70F:→ danny8376:至於手动编译并不会困难啊 PHP Core也不会编太久~ 11/08 02:12
71F:→ vicvicky:目前移到我们的主机後遇到的BUG是无法新增资料,因为无法 11/08 08:25
72F:→ vicvicky:新增,所以也还无法测试还有没有後续的问题,但所有功能 11/08 08:26
73F:→ vicvicky:在网站还在资讯公司主机时就测试没问题并验收了 11/08 08:27
74F:推 alog:贵公司需要改善作业流程。 11/08 20:10
75F:推 tonytsai88:可能是用了PHP5.3已经不再提供的function,又不肯改用5 11/09 21:05
76F:推 tonytsai88:.3的替代function 11/09 21:07
77F:→ tkdmaf:如果是楼上说的原因,那就是要看他们有没有写function 11/09 23:45
78F:→ tkdmaf:如果有,那问题一切好解决,没有的话就GG吧!改到死。 11/09 23:46
79F:→ gname:就是改到死厂商才不想改啊...(菸 11/10 00:00
80F:→ averywu:支付合理费用就没有冲突问题了 XD 11/12 12:41
81F:→ f1234518456:验收了谁鸟你 11/17 20:00