作者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