在Apache上以 DSO 方式安装 PHP
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-06
如果以静态方式安装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 了。 关键词:安装 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Cluster之架设(NAT形式)(1)下一篇: Web服务器安全指南(3)
关于在Apache上以 DSO 方式安装 PHP的所有评论