Dec 28

從幾個禮拜前我就在我的 BBS 個人板叫過, 我的 Apache 啟動後過不了多久就會狂噴這種訊息到 error log 裡 :

[warn] (32)Broken pipe: write pipe_of_death

而且 child process 的數量只會一直增加, 不會減少. :neutral:
如果我沒記錯的話, 這串訊息出現在我把 2.0.54 換成 2.0.55 以後.
所以當時我是決定把 2.0.55 換成 2.2 .
很不幸的, 狀況並沒有變動, 訊息仍然存在.
我一直以為是 Apache 的問題, 直到我在昨天看到 這篇 才恍然大悟. :shock:

很明顯的, 罪魁禍首是 eAccelerator , 問題出在 debug.c 這支程式的這段:

void ea_debug_shutdown ()
{
    fflush (F_fp);
    fclose (F_fp);
    F_fp = NULL;
}

fclose (F_fp); 換成 if (F_fp != stderr) fclose (F_fp); , 重新 compile & install 就沒事了.

如果是用 FreeBSD 的 ports 安裝的人可以把 這個 patch 檔 抓回去放在 /usr/ports/www/eaccelerator/files 底下, 然後用 portupgrade -f 或重裝一遍就可以解決.

話說回來, 這種 bug 還真是讓人無言以對啊........... :wink:

Technorati Tags: ,

Tags: ,
(Visited 5597 times)
Dec 28

前幾天送了個 pr ( problem report ) 回去給總部, 順便在這邊說一下好了, 反正太久沒寫 Blog . :???:

這個 prApache 2.2 啟動用的 shell script 問題.

我不知道 2.1 有沒有這問題, 因為我用的是 2.2 , 下面也是以 2.2 做說明. :shock:

之前官方並沒有提供 apache22_http_accept_enable 這個參數讓我們丟進 /etc/rc.conf , 所以唯一解法是在 /boot/loader.conf 加進這行 :

accf_http_load="YES"

現在 /usr/local/etc/rc.d/apache22.sh 裡面可以看到這段 :

# apache22_http_accept_enable (bool): Set to "NO" by default.
#                             Set to yes to check for accf_http kernel
#                             module on start up and load if not loaded.

跟這段 :

if checkyesno apache22_http_accept_enable
then
        if ! /sbin/kldstat -q -m accf_http
        then
                /sbin/kldload accf_http
        fi
else
        apache22_flags="-DNOHTTPACCEPT $apache22_flags"
fi

很明顯的, 這邊用到 kldstat 的 -q 跟 -m 這兩個選項.
但是 kldstat 在 FreeBSD 6 裡面才有支援 -q , 而 -m 則是在 5.4 STABLE 才有支援 , 5.4 RELEASE 以下都沒有.

  1. kldstat online manpage - FreeBSD 6.0
  2. kldstat online manpage - FreeBSD 5.4 STABLE
  3. kldstat online manpage - FreeBSD 5.4 RELEASE

所以在 5.4 RELEASE (含) 以下的平台在啟動時會看到這種訊息 :

kldstat: illegal option -- q
usage: kldstat [-v] [-i id] [-n name]

所以我送 pr 去請他們把 -q -m 改成 -n 就好.

目前看來是還沒處理, 不知道會不會回我信, 叫我改用 FreeBSD 6.0 ? XD

Technorati Tags: , ,

Tags: , ,
(Visited 5005 times)
Apr 22

Apache 的火力還真大啊.

剛剛發現有人盜連以後找了一下文件, 看到 這個這個 .
於是我在 httpd.conf 中加了些設定以後 restart httpd , 就發現 這裡 的小貼紙不見了一堆.

不過, 這篇文章 貼的連結也失效了! XD

Technorati Tags: , ,

Tags: , ,
(Visited 2325 times)
Jan 13

前陣子就看到 Multiple vulnerabilities within PHP 4/5 這則 security advisory , 然後馬上開工, 把手上幾台 Apache + PHP 通通升級一下.

結果我這兩天才發現.
升級以後, 一堆 PHP 的系統爛光光 .

trace 過以後發現這點 :

之前的 PHP 會把 $username 這種變數吃成以下這三種的任何一種:

 $_GET["username"]    // 用 FORM 的 GET 來傳, 或用 xxx.php?username=xxx 來傳
 $_POST["username"]   // 用 FORM 的 POST 來傳
 $_COOKIE["username"] // 會吃 Cookie 的 username

PHP 4.3.10 就要求要強制指定了.
而我手上有三套自己寫的 PHP 系統, 要開始大修了. T_T

Technorati Tags: ,

Tags: ,
(Visited 2320 times)
Jan 11

前陣子狂搞 mod_rewrite , 興趣來了就順便看看 Apache 還有哪些 mod .
看過以後只有一個感想, 就是 "多到爆!"

有些很邪惡, 像: mod_bt, mod_mp3, mod_layout .
有些很暴力, 像: mod_security, mod_rewrite .

Technorati Tags:

Tags:
(Visited 2003 times)