2012-03-13 118 views
0

我的操作系统是CentOS的6.2。 我需要使用php 5.2.4,这取决于openssl 0.9.8e。但openssl 1.0.x随OS一起提供。 所以我建立了openssl 0.9.8e。 现在在我的操作系统上有openssl 0.9.8e和​​php 5.2.4。 /opt/php5.2.4/ /opt/openssl0.9.8e/如何让httpd的工作有两个不同版本的OpenSSL

php cli正常运行,但是当我使用PHP与Apache。 Httpd无法启动。 Httpd是从CentOS存储库安装的。

的问题似乎是 - 的httpd使用libmysql.so,它依赖于OpenSSL的1.0.x. Httpd也使用了libphp5.so,它依赖于openssl 0.9.8e。

我怎样才能让他们一起工作?

回答

0
  1. 现场的事实,你不能可靠地混合使用不同版本的库,在一个单一的过程时,他们的符号表有助于全局命名空间(即标准DT_NEEDED机制或使用dlopen与RTLD_GLOBAL)。这意味着你必须让你的httpd部分(包括sql)使用openssl 0.8,或使php使用1.0。后者不应该特别困难,因为openssl从此以后几乎没有变化。
  2. 或者,你可以在FastCGI的模式下运行PHP。这也允许使用例如apache2事件,而不是老的prefork-er。有很多方法了一把拉这一关(守护程序和Apache模块的选择) - 一个来开箱即用的PHP-FPM-5.3.3 +连同Apache的2.4 +的mod_proxy_fcgi。
相关问题