【发布时间】:2011-01-31 21:55:45
【问题描述】:
这里是一个快速概述:
我刚刚完成了 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 中添加扩展行没有效果。
【问题讨论】:
-
“谁能解释为什么
--with-mbstring似乎没有效果”。你的意思是--enable-intl? -
我打错了,实际上确实是要输入“--enable-EXT_NAME”(如我的代码块中所示)。但是,将 intl 扩展放在一边,即使我使用“--enable-mbstring”,该扩展也不会被编译/安装/启用。直到我手动构建它并“安装”它,我才获得支持并看到它启用。
标签: php compilation php-5.3