首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 服务器 → Win服务器 → 文章内容

在Apache上以 DSO 方式安装 PHP

作者:佚名  来源:天极网  发布时间:2007-2-7 22:18:40
如果以静态方式安装Apache ,则每次 PHP 有升级后,就必须重新安装 Apache,所以,在实践当中,笔者总是建议用户以 DSO 方式来安装 PHP。如果需要安装 ApacheSSL 时,你就更会感觉到DSO 的方便和快捷了。

  DSO 字面的含义就是动态共享对象,详细的文档可以参考 Apache 的在线手册。在使用 DSO 之前,你必须保证自己的 Apache 能支持 DSO ,因此,在编译PHP 时,应该使用 --with-apxs=/usr/local/apache/apxs 的参数,当然这里的 apxs 所在的路径需要根据你自己的安装路径来修改。

  有可能你会遇到下面的错误报告:
  configure: error: Sorry, I cannot run apxs. Either you need to install Perl or you need to pass the absolute path of apxs by using --with-apxs=/absolute/path/to/apxs

  如果碰到这样的问题,一般是 Perl 已经安装并且已经指定了 apxs 的路径,但是Apache 不支持 mod_so。Apache 的缺省编译是支持 mod_so 的,除非你在编译时使用了 --disable-module=so 参数。

  最常见的问题就是在运行了 #./configure --with-apxs=/usr/local/apache/apxs 之后看到下面的错误报告:
  WARNING: Your /usr/local/apache/bin/apxs script is most likely broken.

  所以,我们有必要检查一下 apxs 这个脚本文件。在文件中查看下面的行:
  my $CFG_CFLAGS_SHLIB = ' ';
  my $CFG_LD_SHLIB = ' ';
  my $CFG_LDFLAGS_SHLIB = ' ';

  如果以上几行真是空的话,那么 apxs 就真的有问题了。正确的应该是:

  my $CFG_CFLAGS_SHLIB = '-fpic -DSHARED_MODULE';
  my $CFG_LD_SHLIB = 'gcc';
  my $CFG_LDFLAGS_SHLIB = q(-shared);

  Red Hat 的6.1 和 6.2 中的 apxs 也有问题,下面的行:
  my $CFG_LIBEXECDIR = 'modules';

  应该修改为:
  my $CFG_LIBEXECDIR = '/usr/lib/apache';

  得到正确的 apxs 后,就可以编译 PHP 了。经过 make 和 make install ,并且重启Apache 后,我们又得到了一个错误消息:

  API module structure `php4_module' in file /usr/local/apache/libexec/libphp4.so is garbled - perhaps this is not an Apache module DSO?

  不要担心,我从来就没有碰到过这样的消息!因为我在开始新的编译之前总是使用make clean ; make distclean 来清除以前编译后留下的"垃圾"。

  但是需要指出的是,笔者在升级 PHP 4.0.4pl1 过程中,碰到的问题是在编译完毕,并重新启动 Apache 之后碰到 "undefined symbol:uncompressed" 的报告。经过多次调试发现是采用了 --with-mysql=/usr/local/mysql 的开关所致,后来采用 MySQL 源代码版本,重新编译 MySQL 以后,再编译 PHP ,就没有这个问题了。所以,应该是MySQL 的库没有进入编译路径所致。

  需要注意的是,编译Apache 的时候,不要使用 --activate-module=src/modules/php4/libphp4.a 参数,因为这样的话,PHP4 就是以静态方式来安装了。

  恭喜你,安装成功,以后 PHP 有新的补丁/版本出来,就不需要重新编译 Apache 了。


[] [返回上一页] [打 印]
  • 上一篇文章:巧配Samba实现WIN2000和Linux文件共享
  • 下一篇文章:Webalizer 安装使用指南(1)

  • 相关文章:
  • 大型Web需求解决方案 PHP定位突出
  • 在Apache上简简单单开个WAP站点
  • 在Apache上以 DSO 方式安装 PHP
  • IIS 6 的 PHP 最佳配置方法--IIS6,PHP,最佳配置方法...
  • 突破WIN2003 PHP服务器的新思路--突破,WIN2003,PHP,...
  • 突破Windwos 2003 PHP服务器的新思路--Windwos,2003...
  • 安全基础之IIS6 的 PHP 最佳配置方法--安全,IIS6,PH...
  • [图文]Classes and Objects in PHP5
  • 使用 php4 加速 web 传输
  • 浅谈Windows下 PHP4.0与oracle 8的连接设置
  • 第十五节--Zend引擎的发展 -- Classes and Objects ...
  • 第十四节--命名空间 -- Classes and Objects in PHP...
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号