【问题标题】:Compiling PHP with extensions使用扩展编译 PHP
【发布时间】:2011-02-01 05:23:12
【问题描述】:

谁能告诉我为什么以下 ./configure 设置似乎不会真正影响我的 PHP 构建?

详情:

  • php-5.3.5
  • 编译以便在每个域的基础上使用 php-cgi

例如,我的 ./configure 如下所示:

./configure --with-curl --enable-mbstring

ma​​ke, make install 工作正常,我成功获得了我的 php-cgi 二进制文件。当我跑步时:

<?php phpinfo() ?>

我可以看到我正在运行 5.3.5,但没有 curlmbstring 的迹象。

但是,有一个问题:如果我直接(在源代码中)在扩展程序上使用运行 phpize 并通过适当的 ./configure, make, make install >,我可以补充:

extension=mbstring.so

到我的 php.ini,然后我在 phpinfo() 输出中看到 mbstring

据我推测,我可以付出额外的努力来手动编译我想要的每个扩展,但我无法直接编译这些扩展。

有什么想法吗?

【问题讨论】:

  • 第一个虚拟规则:您是否重新启动了 apache? 如果您通过网页进行测试。其次,试试PATH/php -m,和PATH/php -i grep config,两者都符合吗?最后,确保您访问的是正确的 php 二进制文件
  • 我遇到了同样的问题。我用源代码在ext文件夹下构建了一些扩展,一些扩展被php成功加载,但只有curlmbstring无法加载。有人知道为什么吗?谢谢。

标签: php compilation php-5.3 mbstring


【解决方案1】:

ajreal 的评论为我指明了正确的方向。

我同时尝试了几件事,结果跨越了几根电线。我没有成功创建到 php-cgi 二进制文件的符号链接,所以它被复制到:

/var/www/vhost/DOMAIN/bin.

它仍然指向正确的 php.ini,但与我后来使用附加扩展编译的二进制文件不同。

现在可以理解为什么添加到 php.ini 中的模块会显示出来但没有直接编译进去。经验教训!

【讨论】:

    猜你喜欢
    • 2016-03-22
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 2012-11-27
    • 2016-11-07
    • 2012-01-25
    相关资源
    最近更新 更多