本來只是很單純的跑個 update 的 batch 作業,
但大概是之前的設定有些問題,用 portmanager 更新之後,
原先用 apache module 方式跑的 libphp5 跑不起來,
查了之後發現,原來是更新過 ports 之後,
php5 預設安裝 fastcgi 版本,而 module 版被移出,
變成 mod_php5..
嗯,所以裝 fastcgi 版本比較好? (不知)
於是就動手改成 fastcgi 版本的 php5。
原先我也搞不懂 apache + php5-fcgi 設定,
但藉著偉大 Google 大神之神力,找到了相關文章。
設定資料可以在 這裡 查到,
如果 apache 已經裝好,從第四點開始看就可以了。
文章寫得十分詳細,照著做就可以順利跑起來囉 :p
更新成 fastcgi 版本之後,
網頁目錄的 .htaccess 不能設定 php_value,
解決方式在網路上有,因為太麻煩,所以我就當作沒看到了 (默)
裝到這裡,一切都看似安好,
但今天要進 phpMyAdmin 的時候才發現無法進入,
會跑出 Internal Server Error,
而 log 裡寫的原因是 error parsing headers: duplicate header 'Status',
看了半天不知道所以然,就開始東試試西試試;
在一陣胡亂嘗試下,除了把 phpMyAdmin 更新外,
httpd 也就這樣順勢被我更新成 2.2.3 版了..
因為更新之前的 httpd 是 2.0.58,
設定跟 2.2.3 有些許不同,花了一些時間調整,
但新的版本設定檔確實有條不紊多了 (遠目)
apache22 設定方式可以看 這裡 (日文)。
但到了這裡,還是不行。
嗯,那就去問 Google 吧 XD
查到了 這篇(1),
加上 FastCgiConfig 及 rewrite rule 後,還是無法正常運作,
於是就又點到 Refer 到的 這篇(2),
發現同樣也是 duplicate header 的問題..
好吧,這代表 phpMyAdmin 有某個地方送了奇怪的 header,
於是便開始在搜尋含有
header('status: ...');
的檔案。最後,在
./libraries/auth/http.auth.lib.php
找到了問題,patch 方式跟上面 (2) 提到 WordPress 的方式很像,只要將
header('HTTP/1.0 401 Unauthorized');
header('status: 401 Unauthorized');
修改成
if(eregi(php_sapi_name(), 'cgi'))
header('status: 401 Unauthorized');
else
header('HTTP/1.0 401 Unauthorized');
即可正常運作,但是要記得加上 (1) 裡面的 rewrite rule,
才算是大功告成喔 (飄)
雖然花了很多時間,可是還滿有成就感的..
這種詭異的執著還真是恐怖呢 XD
[posted by cornguo @ CornGuo's BLOG]
沒有留言:
張貼留言