[請益] Debug方法跟$_SERVER的問題

看板PHP作者 (阿達)時間12年前 (2013/09/10 19:17), 編輯推噓2(2016)
留言18則, 6人參與, 最新討論串1/1
小弟這一兩天把在windows下開發的網頁系統搬移到Linux(Ubuntu)系統下跑 使用 Apache2 + PHP5 系統裡有個透過 AJAX(POST) 問PHP程式更後端資料的機制 本來在windows下跑都正常, 但搬到linux下就失效了 ajax直接跑到error部分, 得到的錯誤是500, Internal Server error 除此之外沒有其他的資訊 由於在linux上也同時有寫檔權限的問題 (改own跟mod權限給www-data都無效 Orz) 所以也沒辦法透過我本來就寫好的log機制去看問題 所以在這想請教各位, 你們都怎麼debug PHP程式? 不能設斷點之類的還真麻煩.... Orz 接著我為了找出問題 嘗試了一大堆東西 花了一整天 最後使用最笨的手段 把PHP部分一段一段加回來 看到底哪邊才出錯 才發現是 $_SERVER['xxxxxxxxx'] 這個片段出問題 if (empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $vm_address = $_SERVER['REMOTE_ADDR']; } else { $vm_address = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0]; } 我想請教 這東西不能用在linux系統裡嗎? 感謝~~ PS: 我爬了一些資料, 有人建議改用 getenv -- . ______ ◥█◣▲◢█◤ ◥ ◥GRAVEYARD. \◤◥█◤◥◤ ◤ ' \ BILE DEMON'◥◥◤◤ ◢▌  ̄ ̄ ̄ ̄ ̄ ̄ █▌ ◣ ◥▌ ◢◢//\ ●● ◥◥ ◤◥ ◤◤◣◣ ▃▇ ▆◣▂◢▂▅█▄ USHER -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.181.118.240

09/10 19:23, , 1F
沒有這回事, 但是HTTP_X_FORWARDED_FOR 是過proxy才有的
09/10 19:23, 1F

09/10 20:08, , 2F
explode(...)[0] 改成
09/10 20:08, 2F

09/10 20:09, , 3F
$tmparr = explode(...);
09/10 20:09, 3F

09/10 20:09, , 4F
$XXX = $tmparr[0];
09/10 20:09, 4F

09/10 21:11, , 5F
$xxx = current(explode(...));
09/10 21:11, 5F

09/10 23:36, , 6F
其實小的測過才把[0]掛到後面的.. 不過我會改回去看看! 3Q
09/10 23:36, 6F

09/11 00:03, , 7F
新的linux可能有SELinux的問題 這個很容易搞死沒碰過的
09/11 00:03, 7F

09/11 08:55, , 8F
把 php.ini display_errors 打開吧,看到底發生了什麼事
09/11 08:55, 8F

09/11 08:55, , 9F
ubuntu 預設是把 error 顯示關掉,有錯誤訊息才能 debug。
09/11 08:55, 9F

09/11 11:54, , 10F
反正PHP [0]掛在函數後面會synax error...
09/11 11:54, 10F

09/11 13:29, , 11F
php 5.4 允許 foo()[0]; 這樣的用法了
09/11 13:29, 11F

09/11 17:59, , 12F
現實上很多php還沒更新到5.4
09/11 17:59, 12F

09/11 17:59, , 13F
尤其RHEL&CentOS還只有5.3.3 要5.4還得要自己編
09/11 17:59, 13F

09/11 18:06, , 14F
是說PHP5.5都已經Release了...
09/11 18:06, 14F

09/11 20:47, , 15F
我今天把系統裡有用到(array)[0]的都改掉 確實正常了!
09/11 20:47, 15F

09/11 20:49, , 16F
看來Linux上用apt-get install php5裝的並沒到5.4
09/11 20:49, 16F

09/12 03:19, , 17F
BSD系列(這抓源碼現場編的是廢話XD)&Ubuntu之外
09/12 03:19, 17F

09/12 03:19, , 18F
應該大多數主流的Server版distribution都還在5.3
09/12 03:19, 18F
文章代碼(AID): #1IBl-yIA (PHP)
文章代碼(AID): #1IBl-yIA (PHP)