0

OSX ライオンに 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

PS:

また、次の行を 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"
4

1 に答える 1

1

次の内容で Web ページを作成します。

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

(はい、2 行目でエラーが発生することはわかっていますが、この場合、動作していることを伝えるだけで十分です。)

その Web ページを表示し、「Internationalization support」または「intl」を検索します。私の場合、次のように表示されます。

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 ファイルを読み取ることができませんか?

于 2012-06-03T13:40:22.670 に答える