我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 操作系统 > Linux > 安装设置 > 在Apache上以DSO方式安装PHP
热门文章排行
热门文章排行 一步一步的制作arm-linux交叉编译环(12-05)
深入理解硬盘的Linux分区(12-22)
深入浅出定制Linux系统环境变量(12-05)
Linux常用基本命令(二)(10-13)
红旗Linux5.0桌面正式版光盘安装{图(11-15)
精采文章排行
精采文章排行 vi基本技巧(11-16)
Linux历史篇(11-16)
Linux不是Windows(11-16)
第一次进入红旗后,应该做的几件事(11-15)
详解linux与win分区格式(11-15)
技术专题推荐
网管论坛交流
 

在Apache上以DSO方式安装PHP 

作者:   来源:Linux 宝库   点击:   日期:2006-11-21


-->

  作者: 徐永久
  
  如果以静态方式安装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 了。
  






文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·轻松安装RedHat9.0 ·怎样安装Oracle9iforHP-UX双机
·安装过windows后如何安装linux ·深入理解硬盘的Linux分区
·在虚拟pc上安装linux操作系统 ·在Linux下安装BT服务器的捷径

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。