Apache 2.0.35 和 PHP 4.3-Dev 的集成
2024-08-27 18:28:46
供稿:網(wǎng)友
當(dāng) apache 2.0.35 以正式版本發(fā)布時(shí),發(fā)現(xiàn)網(wǎng)絡(luò)上很少有提起能成功集成 apache 2 和 php 4 的。就連著名的 phpbuilder.com 上的論壇里也充滿了消極的討論。我是屬于那種不敢氣餒的家伙,昨天晚上工作到 2:00 am 沒(méi)有成果后,今天繼續(xù)苦戰(zhàn),從晚上 9:00 到 0:00 基本有了眉目,但是由于 freelamp.com 采用了 zope+fast_cgi 的組合和 apache 集成,而 fast_cgi 的 apache 2 版本還在開(kāi)發(fā)中,所以目前本網(wǎng)站運(yùn)行的版本依然為 1.3.24。
編譯 apache 的命令是:
./configure --prefix=/apache2 --enable-auth-anon --enable-auth-dbm
--enable-file-cache --enable-cache --enable-disk-cache --enable-mem-cache
--enable-ext-filter --enable-proxy --enable-proxy-connect --enable-proxy-http
--enable-http --enable-dav --enable-rewrite --enable-so
我使用老套的 --enable-module=most --enable-shared=max 來(lái)編譯時(shí),發(fā)現(xiàn)并不能奏效, apache 2 不會(huì)讓安裝的模塊 most,所以采用了以上長(zhǎng)長(zhǎng)的一大串選項(xiàng)。
然后就是 make;make install ,看起來(lái)很成功。修改 httpd.conf ,把偵聽(tīng)端口修改為 1234 ,然后用 www.freelamp.com:1234 上去看看,不錯(cuò),那個(gè)繁體版本的 index.html.big 出來(lái)了。(怎么沒(méi)有我們大陸的簡(jiǎn)體版本呢?)
我知道要讓 php 跑起來(lái)會(huì)十分的困難,所以,對(duì)于昨天搞到十分深夜,依然沒(méi)有結(jié)果的下場(chǎng),我并不感到悲哀。希望正在讀此文的你,能很快部署起 apache 2 和 php 4 的組合來(lái)。說(shuō)實(shí)話,要安裝 php ,必須先找到一個(gè)合適的 版本,現(xiàn)成的最新穩(wěn)定版本是不能“組合”起來(lái)的。你必須去 snaps.php.net (這個(gè)網(wǎng)站有點(diǎn)慢?。┫螺d php4-latest.tar.bz2 ,然后才能用新版本編譯。我使用了:
./configure --with-apxs2=/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql
來(lái)開(kāi)始,但是make 時(shí)發(fā)現(xiàn)系統(tǒng)報(bào)告:
00 -i/apache2/include -i/usr/local/src/php4-200204090000/zend -i/usr/local/mysql/include/mysql -i/usr/local/pgsql/include -i/usr/local/src/php4-200204090000/ext/xml/expat -d_reentrant -i/usr/local/src/php4-200204090000/tsrm -g -o2 -pthread -dzts -prefer-pic -c /usr/local/src/php4-200204090000/sapi/apache2filter/php_functions.c -o sapi/apache2filter/php_functions.lo
/usr/local/src/php4-200204090000/sapi/apache2filter/php_functions.c: in function `zif_apache_lookup_uri':
/usr/local/src/php4-200204090000/sapi/apache2filter/php_functions.c:91: parse error before `('
/usr/local/src/php4-200204090000/sapi/apache2filter/php_functions.c:92: parse error before `('
make: *** [sapi/apache2filter/php_functions.lo] error 1
[[email protected] php4-200204090000]#
看來(lái),其中一個(gè)程序的括號(hào)有問(wèn)題,是 addlong 的一個(gè)宏里面使用了 (long) 這樣的定義,看來(lái)不是很有關(guān)系,就在 91 和 92 這兩行里把這個(gè) (long) 給去掉了。繼續(xù) make ,成功了!
然后,我不說(shuō),你也知道:make install 。
就這么簡(jiǎn)單!
不過(guò),你需要在 httpd.conf 中加入下面的說(shuō)明,以讓 apache 認(rèn)識(shí) .php 文件:
addoutputfilter php .php
addinputfilter php .php
addtype text/html .php
apache 2 增加了很多新的特色,我在以前的文章就有過(guò)介紹。文章后面附加的連接,作為重要的參考資料對(duì)于您了解 apache 2.0 的特色會(huì)有所幫助。本站將繼續(xù)翻譯/創(chuàng)作出有關(guān) apache 2.0 的文章來(lái),就如我在論壇中所言,apache 2.0 會(huì)成為一個(gè)重要的產(chǎn)品,研究提升價(jià)值。研究 apache 2 也會(huì)提升本站的價(jià)值。我相信!中國(guó)最大的web開(kāi)發(fā)資源網(wǎng)站及技術(shù)社區(qū),