MAMP/PHP.INI:phpinfo()中的"date.timezone"设置显示"无值",即使该值在php.ini中设置

Dim*_*zov 8 php mamp

向StackOverflow大师致以问候!

这是我正在努力解决的问题.

我在MAMP中运行phpinfo(),结果表在date.timezone行的两列中显示"无值".

此外,该页面显示以下内容:

警告: phpinfo()[function.phpinfo]:依赖系统的时区设置是不安全的.您需要使用date.timezone设置或date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们在/Applications/MAMP/bin/mamp/phpinfo.php中选择'America/New_York'作为'EST/-5.0/no DST'

但是在thr php.ini文件中,设置如下:

date.timezone = America/New_York

我预见建议检查php.ini的路径是否正确 - 我已经这样做了,路径确实是正确的:/Applications/MAMP/conf/php5.3/php.ini - 那是一个文件有值设置.

我该如何解决这个问题?我错过了什么?

非常感谢知识渊博的人的帮助.

Joe*_*984 9

我知道我可能会有点迟到,但我在一些网站上看到你在MAMP中设置正确的时区.

应该注意,对于您正在使用的php版本,php.ini文件有两个位置.MAMP可以从与您正在编辑的路径不同的路径加载它.

例如,假设我们使用的是php 5.3.这是一个php.ini文件的两个位置,可能会混淆某人编辑的位置.

/Applications/MAMP/bin/php/php5.3/conf/php.ini
Run Code Online (Sandbox Code Playgroud)

你好像在下面的这个位置编辑它:

/Applications/MAMP/conf/php5.3/php.ini
Run Code Online (Sandbox Code Playgroud)

在第二个路径中编辑时区对我来说不起作用,但编辑第一个路径中的时区.可能是您正在编辑错误的文件,即使它看起来一样.我在我的版本上测试了这个.<?php phpinfo(); ?>在php文件中运行并检查php.ini文件的路径将始终显示正确的路径.

还要指出的是,在date.timezone的值周围使用双引号将起作用.例如,在我的php.ini文件中,以下工作正常.

date.timezone = "America/Vancouver"
Run Code Online (Sandbox Code Playgroud)

此外,默认值也用双引号封装.

我在测试时也使用了MAMP 2.1.1版.


wiz*_*ard 6

如果在相关的php.ini文件中正确设置了时区,并且您仍然收到此消息,则可以尝试设置TZ环境变量.编辑.profile以添加以下行(sub在您自己的时区字符串中):

export TZ="America/New_York"
Run Code Online (Sandbox Code Playgroud)

不确定为什么(a)MAMP会覆盖你的php.ini设置,(b)PHP在使用TZ env变量时不会抛出通知/警告,即使它说它会,但是这个解决方案对我来说使用MAMP 2.0.5用PHP 5.3.6.