看板 PHP 關於我們 聯絡資訊
午安, 想請教大家一個問題, 我們公司請資訊公司建置一個網站, 現在要把整個資料庫移置公司伺服器主機, 但因為我們使用的版本是5.3, 資訊公司要求5.2,否則會產生BUG, 在公司堅持要放在同一個伺服器主機,且主機環境PHP得5.3的情況下, 有何方法可以排除BUG或不同版本共存嗎? 這應該會衝突吧?(灌了PHP 5.2以後原本吃5.3的網站都掛掉了@@) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.144.113
Jerr:VM? 11/07 16:39
up9cloud:換資訊公司XD? 11/07 17:00
MOONRAKER:你講掛的狀況是app 5.3 > svr 5.2 公司網站依你描述是 11/07 17:18
MOONRAKER:app 5.1 < svr 5.3 這兩者有關聯嗎 11/07 17:19
LaPass:換公司比較簡單.... 11/07 17:22
※ 編輯: vicvicky 來自: 114.34.144.113 (11/07 17:25)
vicvicky:誤打成5.1,抱歉 11/07 17:26
vicvicky:網站已經做好了,錢也付了,現在只是要移過來,不可能告 11/07 17:27
vicvicky:訴他們"因為沒辦法裝在我們主機上,所以我們要退錢"吧QQ 11/07 17:27
vicvicky:VM是指虛擬系統嗎? 11/07 17:28
tkdmaf:我覺得怪怪的,感覺是你們的系統比較新。 11/07 17:42
tkdmaf:理論上,5.3向下相容於5.2 11/07 17:42
tkdmaf:但比較有可能產生BUG大多問題出在php.ini設定 11/07 17:43
tkdmaf:通常最有可能是發生原本程式使用不嚴謹寫法。 11/07 17:43
tkdmaf:例如你的設定output_buffering是false 11/07 17:43
tkdmaf: off才對 11/07 17:44
tkdmaf:然後他們卻設定成ON或是給數值(例:4096) 11/07 17:45
tkdmaf:然後就把session_start()或是header()給他亂放 11/07 17:45
tkdmaf:而其實呢,你把5.2的php.ini全照最嚴謹模式設定 11/07 17:46
tkdmaf:別說5.3不能跑,就是5.2也照樣不能跑。 11/07 17:46
tkdmaf:常見情形就是其實他們是灌appserv 2.5.10...... 11/07 17:46
tkdmaf:我公司的案子是在PHP5.3的環境下開發的。 11/07 17:47
tkdmaf:但我自己架了一台CENTOS跑的是PHP5.5 11/07 17:47
tkdmaf:可我整個專案移過去跑也沒ERROR過。 11/07 17:48
tkdmaf:你可以建議網管把你們的5.3設定檔改成較寬鬆(較危險) 11/07 17:50
tkdmaf:然後看看所謂5.2模式寫出來的code能不能跑。 11/07 17:50
tkdmaf:能跑的話............換一家公司吧。 11/07 17:50
gname:這可不是向下相容可以解決的,不久前我們也碰到相同的事... 11/07 17:58
gname:我們家的環境是5.3,但廠商的開發環境是5.2,程式碼一放上來 11/07 17:59
gname:log檔就被塞爆了,沒多久就倒站了,一整個無言... 11/07 18:00
gname:後來我們把 LOG 檔給廠商,他們看完後表示要修的東西太多,根 11/07 18:01
gname:本修不完,而且也搬出合約中並無載明php版本,雖然我們用資安 11/07 18:02
gname:去壓,但是廠商吃定我們有驗收時程壓力(這案子搞爛了,我也會 11/07 18:03
gname:倒大楣),最後鼻子摸著還是退回5.2版,讓案子順利結束. 11/07 18:04
thitbbeb:php 5.2 & 5.3 只是有些函式的新舊交替?剩下的error應該 11/07 18:50
thitbbeb:程式寫得不夠嚴謹 與版本無關吧 11/07 18:51
tkdmaf:這時就要說,如果function和method很單純一進一出 11/07 18:55
tkdmaf:那要修問題就很簡單了。 11/07 18:55
tkdmaf:怕的是……他們使用一式到底的寫法。這完全就難分難捨了。 11/07 18:56
tkdmaf:寫程式要是按功能類別獨立開來不要混在一起寫的話。 11/07 18:58
tkdmaf:根本就不怕遇到這種版本異動的狀況。 11/07 18:58
tkdmaf:搞不好還可以判斷版本來自動切換跑功能相同但程式碼不同的 11/07 18:59
tkdmaf:函式。 11/07 18:59
alog:php5.2跟5.3的設計環境差太多 11/07 21:15
alog:你們可以付點錢要求修正 11/07 21:16
alog:因為這之間產生的資訊安全問題真的很麻煩,php5.2 的exploit 11/07 21:17
alog:隨隨便便都可以弄垮伺服器 11/07 21:17
danny8376:說共存解法吧 CGI類模式(CGI fastCGI)只要針對那部分 11/07 21:17
danny8376:網站去調整改用5.2的PHP (另外裝一份) 11/07 21:18
alog:FASTCGI也要小心,因為之前也才爆出 exploit 11/07 21:18
alog:我對這種不求上進的資訊公司還蠻感冒的-__ 11/07 21:19
danny8376:不過只能5.2實在... 要更高版本還能接受... 11/07 21:19
danny8376:跟fastCGI無關啊 只要是軟體都會有exploit 11/07 21:20
danny8376:這只是說真的無法就CGI另外給5.2的PHP去解譯 11/07 21:20
danny8376:不過個人是覺得這種廠商下次別找了... 11/07 21:21
vicvicky:先謝謝各位前輩的回覆,雖然外行的我看了還是霧煞煞QQ 11/07 21:41
vicvicky:目前我們只能想到的方法:(1)給他們5.2的環境(2)另外花錢 11/07 21:43
vicvicky:但就擔心tk大講的問題,後續我們維護會很困難 11/07 21:46
danny8376:www.php.net/manual/en/migration53.incompatible.php 11/07 22:02
danny8376:5.2到5.3不支援的部分 11/07 22:02
danny8376:不被支援的部分大多都是原本默許的不嚴謹寫法 11/07 22:03
danny8376:先了解廠商說的BUG到底是啥吧 11/07 22:04
danny8376:感覺整個就是我用的是5.2 你要用5.3出事我不管的感覺 11/07 22:04
danny8376:搞不好根本也沒在5.3上面試跑過 11/07 22:05
xxxzzz:php不同版本並存http://xyz.cinc.biz/2013/03/php_14.html 11/07 22:54
mirae:nginx + php-fpm(同時安裝5.2及5.3起不同port) 11/08 00:38
gpmm:樓上這招不錯,不過要手動編譯就是了 XD 11/08 00:52
danny8376:本來就想推nginx+php-fpm 我還有win環境的php存在XDD 11/08 02:10
danny8376:不過nginx不是必備啦www 11/08 02:10
danny8376:至於手動編譯並不會困難啊 PHP Core也不會編太久~ 11/08 02:12
vicvicky:目前移到我們的主機後遇到的BUG是無法新增資料,因為無法 11/08 08:25
vicvicky:新增,所以也還無法測試還有沒有後續的問題,但所有功能 11/08 08:26
vicvicky:在網站還在資訊公司主機時就測試沒問題並驗收了 11/08 08:27
alog:貴公司需要改善作業流程。 11/08 20:10
tonytsai88:可能是用了PHP5.3已經不再提供的function,又不肯改用5 11/09 21:05
tonytsai88:.3的替代function 11/09 21:07
tkdmaf:如果是樓上說的原因,那就是要看他們有沒有寫function 11/09 23:45
tkdmaf:如果有,那問題一切好解決,沒有的話就GG吧!改到死。 11/09 23:46
gname:就是改到死廠商才不想改啊...(菸 11/10 00:00
averywu:支付合理費用就沒有衝突問題了 XD 11/12 12:41
f1234518456:驗收了誰鳥你 11/17 20:00