Apache 2.0.35 與 PHP 4.3-Dev 的集成
發(fā)表時(shí)間:2023-08-15 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]當(dāng) Apache 2.0.35 以正式版本發(fā)布時(shí),發(fā)現(xiàn)網(wǎng)絡(luò)上很少有提起能成功集成 Apache 2 和 PHP 4 的。就連著名的 PhpBuilder.com 上的論壇里也充滿(mǎn)了消極的討論。我是屬...
當(dāng) Apache 2.0.35 以正式版本發(fā)布時(shí),發(fā)現(xiàn)網(wǎng)絡(luò)上很少有提起能成功集成 Apache 2 和 PHP 4 的。就連著名的 PhpBuilder.com 上的論壇里也充滿(mǎn)了消極的討論。我是屬于那種不敢氣餒的家伙,昨天晚上工作到 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í)話(huà),要安裝 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
[root@www 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à)值。我相信!