在 osx lion 上使用端口安装 php-module.它从命令行工作,但不能从 apache 工作


Installing php-module using port on osx lion. It works from command line but not from apache

我在我的osx lion上安装了php5-intl。

它似乎在命令行模式下正常工作,因为如果我尝试运行以下脚本 (1):

$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".datefmt_format( $fmt , 0)."'n";

> php -m |grep intl
intl
> php test.php 
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM Pacific Standard Time

但是,如果我尝试从我的 apache 中晒出相同的阳光(sudo apachectl restart 之后),我会收到以下错误:

> tail /private/var/log/apache2/error_log
PHP Fatal error:  Call to undefined function datefmt_create() in

附言:

我还在我的 php 中添加了以下行.ini

extension_dir = "/opt/local/lib/php/extensions/no-debug-non-zts-20090626"
ll /opt/local/lib/php/extensions/no-debug-non-zts-20090626
total 848
-rwxr-xr-x  1 root  261712  7 May 10:54 xdebug.so
-rwxr-xr-x  1 root  168912 31 May 19:53 intl.so

在 php 中.ini写成:Loaded Configuration File /private/etc/php.ini这是我编辑的文件。


有关我的配置的其他信息如下:

/private/etc/apache2/httpd.conf
LoadModule php5_module libexec/apache2/libphp5.so
/usr/libexec/apache2/libphp5.so
/private/etc/php.ini
extension_dir = "/opt/local/lib/php/extensions/no-debug-non-zts-20090626"

创建一个网页,其中包含以下内容:

<?php
phpinfo();
echo datefmt_create("en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL);
?>

(是的,我知道第二行给出错误,但在这种情况下,告诉我们它有效就足够了。

查看该网页,然后搜索"国际化支持"或"国际"。就我而言,我看到:

Internationalization support    enabled
version                         1.0.3
ICU version                     4.2.1
Directive           Local Value Master Value
intl.default_locale no value    no value
intl.error_level    0           0

如果你没有 intl 部分,那么它只能是一个 php.ini 问题(更常见的原因是不是重新启动 apache,但你说你已经这样做了)。

要确认,请再次编辑 php.ini 文件,并在最后引入一个您可以确定会起作用的更改。 例如 asp_tags = 1 .现在重新加载你的 phpinfo() 页面,并确保你在那里看到更改。

如果你不这样做,也许是权限;用户Apache运行为无法读取你的php.ini文件?

相关文章: