跳到主要內容

使用PHP 4.1.2+Apache 1.3.42+mod_ssl

敝公司幾年前買了套很舊的架站機,它用Zend 編碼PHP,因此只能用PHP 4.1.2+Apache 1.3.X,我只能默默的更新。

這兩天開始會神奇的無回應,檢查error_log發現是達到MaxClients,看了access_log似乎是Sogou web spider有些問題,而我也不想去擋偉大的祖國蜘蛛(誰知道還會有哪隻呢?),所以檢查httpd.conf,發現TimeOut居然被設成1800(秒),原本預設值是300,所以我改成100,這樣httpd的數量就維持在50左右。

因為每天都有不少試漏洞的robots,所以更新是必要的,在此記錄如何編譯Apache 1.3+PHP 4.1.2+mod_ssl



除了更新mod_ssl外,當然也要更新OpenSSL,因為mod_ssl一陣子未更新,所以目前mod_ssl 2.8.31只支援OpenSSL 0.9.8o 而不支援OpenSSL 1.0.0a(API有改變)。OpenSSL這次改版似乎變更key的型式,因此必須重新產生key,更新後使用舊的key會顯示錯誤。

mod_ssl目前只支援到Apache 1.3.41所以若要使用Apache 1.3.42必須在解開mod_ssl-2.8.31-1.3.41.tar.gz後,在 mod_ssl-2.8.31-1.3.41/pkg.sslmod 目錄下修改 libssl.version 將其內容改為
mod_ssl/2.8.31-1.3.42
以下是我的編譯方法,不見得適用所有人:




#tar xzf apache_1.3.42.tar.gz; tar xzf mod_ssl-2.8.31-1.3.41.tar.gz; tar xzf openssl-0.9.8o.tar.gz
$echo 'mod_ssl/2.8.31-1.3.42' > mod_ssl-2.8.31-1.3.41/pkg.sslmod/libssl.version
$cd apache_1.3.42
$./configure --enable-module=so --enable-module=proxy --enable-module=rewrite
$cd ../openssl-0.9.8o
$./Configure; make; make install
$cd ../php-4.1.2
$./configure --with-apache=../apache_1.3.42 --with-zlib=/usr/local --with-png-dir=/usr/local --with-gd=/usr/local --with-sybase=/usr/local/sybase --enable-track-vars --disable-debug
$make clean; make ; sudo make install
$cd ../mod_ssl-2.8.31-1.3.41
$./configure --with-apache=../apache_1.3.41 --with-ssl=../openssl-0.9.8o
$cd ../apache_1.3.42
$./configure --activate-module=src/modules/php4/libphp4.a --enable-module=so --enable-rule=EAPI --enable-module=ssl --enable-module=proxy --enable-module=rewrite
$make clean; make;
$make certificate #如果沒有要做簽章,就不要make certificate這步
$sudo make install
$/usr/local/apache/bin/apachectl stop #重新啟動Apache 1.3
$/usr/local/apache/bin/apachectl startssl 


在Ubuntu可能會發現Apache在configure時錯誤,顯示
Syntax error --- The configuration file is used only to
define the list of included modules or to set Makefile in src
options or Configure rules, and I don't see that at all:
`$(SRCDIR)/apaci`
解決方法很簡單,是因為/bin/sh連結到/bin/dash,所以只要兩個步驟就搞定
sudo rm -f /bin/sh;
sudo ln -s /bin/bash /bin/sh
其實我的內心,是希望不要再用到Apache 1.3,趕快把這套程式丟掉呀呀呀...

留言

Jace Ju寫道…
很舊的架站機?

能說服公司用新的架站機,然後把舊資料轉過來嗎?雖然說轉過來這部份可能要自己寫。

不過這個方式的效益比就不清楚了,未來要是 Apache 和 PHP 都不再更新時,那麼這個系統大概就真的只能一直這樣擺著了。

沒什麼建設的意思,僅供參考 :P
鳥毅寫道…
沒錯,我就是想這麼做呀....

之前有請人估價重做約需30萬~50萬,等到老闆再願意花錢時,再請Jace來估價囉 ^_^

這個網誌中的熱門文章

自然人憑證讀卡機驅動程式

鳥毅用的是第一代的自然人憑證讀卡機,EZ100PU(後來有同事買EZmini可以讀SIM卡似乎更好),每年報稅時用一次。 本來只是要申請些政府業務,一時之間找不到光碟,沒想到在 驅動程式下載 居然看到Linux和Mac的驅動程式,剩下的就是政府單位的網頁和程式應該改版了吧!!!

用ZedGraph畫統計圖

Update: 沒想到這篇居然變成Google搜尋ZedGraph第一篇中文網頁,不過還是誠心建議用Windows上的C#先看一下 免費的圖表元件:Microsoft Chart Controls ,除非你非得用.Net 2.0(Windows 2000)或是用 Mono 。 BTW,我並不想成為微軟MVP,所以本Blog並不是有問必答的喲^_^ 才剛貼完上一篇,馬上就有位朋友丟過來一個LGPL Open Source元件的網址: ZedGraph 。 參考: A flexible charting library for .NET

Ubuntu 安裝 Dlink DWA-182 802.11ac USB Wireless driver

買了一張D-Link的 DWA-182無線網卡 ,想要拿到Linux來用。