欢迎访问 FreeeLAMP.com Tutorial  Tips  Apache  Opinion  PHP 
 搜索
 首页


全文搜索
RDF新闻订阅

Apache 2.0.35 和最新版本的 PHP 4.3-Dev 的集成
Apache徐永久 发表于 2002年04月10日 14:05。  

当 Apache 2.0.35 以正式版本发布时,发现网络上很少有提起能成功集成 Apache 2 和 PHP 4 的。就连著名的 PhpBuilder.com 上的论坛里也充满了消极的讨论。我是属于那种不敢气馁的家伙,昨天晚上工作到 2:00 AM 没有成果后,今天继续苦战,从晚上 9:00 到 0:00 基本有了眉目,但是由于 FreeLAMP.com 采用了 Zope+Fast_CGI 的组合和 Apache 集成,而 Fast_CGI 的 Apache 2 版本还在开发中,所以目前本网站运行的版本依然为 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 来编译时,发现并不能奏效, Apache 2 不会让安装的模块 most,所以采用了以上长长的一大串选项。

然后就是 make;make install ,看起来很成功。修改 httpd.conf ,把侦听端口修改为 1234 ,然后用 www.freelamp.com:1234 上去看看,不错,那个繁体版本的 index.html.big 出来了。(怎么没有我们大陆的简体版本呢?)

我知道要让 PHP 跑起来会十分的困难,所以,对于昨天搞到十分深夜,依然没有结果的下场,我并不感到悲哀。希望正在读此文的你,能很快部署起 Apache 2 和 PHP 4 的组合来。说实话,要安装 PHP ,必须先找到一个合适的 版本,现成的最新稳定版本是不能“组合”起来的。你必须去 snaps.php.net (这个网站有点慢!)下载 php4-latest.tar.bz2 ,然后才能用新版本编译。我使用了:

./configure --with-apxs2=/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-pgsql=/usr/local/pgsql

来开始,但是make 时发现系统报告:


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]#

看来,其中一个程序的括号有问题,是 ADDLONG 的一个宏里面使用了 (long) 这样的定义,看来不是很有关系,就在 91 和 92 这两行里把这个 (long) 给去掉了。继续 make ,成功了!
然后,我不说,你也知道:make install 。

就这么简单!

不过,你需要在 httpd.conf 中加入下面的说明,以让 Apache 认识 .php 文件:

AddOutputFilter PHP .php
AddInputFilter PHP .php
AddType text/html .php

Apache 2 增加了很多新的特色,我在以前的文章就有过介绍。文章后面附加的连接,作为重要的参考资料对于您了解 Apache 2.0 的特色会有所帮助。本站将继续翻译/创作出有关 Apache 2.0 的文章来,就如我在论坛中所言,Apache 2.0 会成为一个重要的产品,研究提升价值。研究 Apache 2 也会提升本站的价值。我相信!


<  |  >

 

相关连接
  • 有关Apache 的文章
  • 作者徐永久的所有文章
  • 联系作者
    Google
    Web freelamp.com

  • 共列出 10 个点评,仅显示索引。
    相关连接
    by 徐永久 on 2002年04月10日 14:10
    LAMP 组合的安装
    Apache 2.0.32 作为 Beta 版本发布
    Apache 2.0 Beta 延期出山
    Apache 2.0 --A Look Under the Hood


    Re: Apache 2.0.35 和最新版本的 PHP 4.3-Dev 的集成
    by skywalker on 2002年04月10日 21:42
    谢谢
    前天我也折腾了半天,fastcgi和php都没编译进去
    就差fastcgi了,希望能在我正式架系统的时候能出新版本

    Re: Apache 2.0.35 和最新版本的 PHP 4.3-Dev 的集成
    by denvor on 2002年04月11日 04:24
    其实就是到cvs.php.net 上面把 apache2filter目录下面的更新文件覆盖 php/sapi/apache2filter下面的文件,然后编译就通过了,再按照目录下的readme 写配置,不过我现在很郁闷的是filter效率很低,而且optimizer和accelerator 都不能用了。 phpmyadmin也跑不起来。

    Re: Apache 2.0.35 和最新版本的 PHP 4.3-Dev 的集成
    by adex on 2002年04月30日 07:11
    我暂没有Linux,但我在Win32的Apache2+php4发现一个很怪的问题:Html或是PHP文件,不管在不在Charset里是否指定GB2312,在浏览器上都显示为乱码,且字符集Encoding选项被强设为Windows(ISO)(英文),手动改为GB2312后,显示出正常中文,但当打开下一页或点击Refresh后,又变为乱码。但是同样的程序或页面,放在Apache 1.3.24下则正常,哪位碰到过这个问题?

    Re: Apache 2.0.35 和最新版本的 PHP 4.3-Dev 的集成
    by 博士 on 2003年08月11日 14:08
    有志者事竟成
    Click to download attachment haha.jpg
    53KB (54472 bytes)


    Re: Apache 2.0.35 和最新版本的 PHP 4.3-Dev 的集成
    by iHero on 2003年09月04日 22:16
    apache2.0 本身的特色并没有使用只是默人的安装. 在apache1.3.* 可是通过修改
    #httpd.h

    #ifndef HARD_SERVER_LIMIT
    #ifdef WIN32
    #define HARD_SERVER_LIMIT 8092
    #elif defined(NETWARE)
    #define HARD_SERVER_LIMIT 8092
    #else
    #define HARD_SERVER_LIMIT 8092
    #endif
    #endif
    来提升APACHE 的性能.
    但是在APACHE 2.0 怎么来提升性能.

    FastCGI的2.4.0可以安装在Apache 2.0.x里,
    by 金城 on 2003年11月10日 19:17
    不过按INSTALL的提示无法安装。
    徐永久,你不能研究一下?



     
    禅道 须在生活中修,在日常言语、形式里面契合、印证
    自我的觉醒却是光阴偷不走,人拿不走的。
    Back to Top| About 我家小子 版权所无 2001,2007 FreeLAMP.com