需要有关PHP扩展的解释

时间:2011-01-31 21:55:45

标签: php compilation php-5.3

以下是快速概述:

我刚刚完成编译PHP 5.3.5并尝试编译“--with”许多不同的扩展。我需要的扩展包括 mbstring intl 。我可以手动 phpize,configure,make,make install mbstring 扩展程序,它似乎工作正常。但是,我无法对 intl

执行相同操作

我的 ./ configure 行如下所示:

./configure --with-openssl --with-pcre-regex --enable-calendar
            --with-curl --enable-exif --enable-ftp --with-gd
            --with-mhash --enable-mbstring --with-mysql --enable-zip
            --enable-intl --with-icu-dir=...

代码编译没有问题: ./ configure ... make,make install

我将 php.ini-production 用于我的 php.ini 配置,我将Apache配置为使用 php-cgi 进行特定操作域名,这也很好。

快点:

<?php phpinfo() ?>

显示我实际上正在运行较新版本的PHP。但是,“ ./ configure ... ”行中指定的扩展名不会显示在PHP信息页的任何位置。

经过一些侦察后,我发现我可以在PHP源文件夹中的单个扩展上运行 phpize ,然后编译特定模块的构建并将其安装在我的PHP扩展目录中。添加后:

extension=MY_EXT

在我的php.ini中,扩展程序显示在我的 phpinfo()页面上。

那么有人可以解释为什么 - with-mbstring 似乎对我的编译没有影响吗?

我没有 intl 扩展名的编译问题,但是将 intl.so 文件移到我的PHP扩展目录并在我的php.ini中添加了一个扩展行没有效果。

1 个答案:

答案 0 :(得分:0)

来自php.net,你试过吗

  

如果您的ICU已安装到   那么你可能是非标准目录   想要指定其位置   LD_LIBRARY_PATH环境变量   这样动态链接器就可以找到它:$   export LD_LIBRARY_PATH = / opt / icu / lib

     

否则,如果PHP和ICU是   安装到默认位置,   然后是附加选项   不需要`configure'。