问候StackOverflow的大师!
下面是我挣扎的问题。
我运行MAMP phpinfo()函数,并将得到的表显示了date.timezone行的两列“没有价值”。
此外,该页面显示如下:
警告:phpinfo()函数[function.phpinfo]:这是不是安全的依靠系统的时区设置。 您需要使用date.timezone设置或date_default_timezone_set()函数。 如果您使用的任何这些方法,你仍然得到这样的警告,你最有可能拼错时区标识符。 我们/Applications/MAMP/bin/mamp/phpinfo.php选择“美国/纽约”的“EST / -5.0 /没有DST”,而不是
在THR php.ini文件,但是,设置如下:
date.timezone =美国/纽约
我预见的建议,检查路径为php.ini是正确的 - 我已经这样做了,并且路径确实是正确的:/Applications/MAMP/conf/php5.3/php.ini - 这是文件有设置的值。
我怎样才能解决这个问题? 我在想什么?
将是从一个知识渊博的人的帮助表示感谢。
Answer 1:
如果时区在相关的php.ini文件中设置正确,但您仍然收到此消息,您可以尝试设置您的TZ环境变量。 编辑.profile文件中添加以下行(子在自己的时区的字符串 ):
export TZ="America/New_York"
不知道为什么(一)MAMP覆盖你的php.ini中,(B)PHP不使用,即使它说,它将TZ环境变量时抛出一个通知/警告,但这个解决方案使用MAMP 2.0.5为我工作用PHP 5.3.6。
Answer 2:
我知道我可能是有点晚在回答这一点,但我看你是问有关在MAMP设置正确的时区几个站点。
应当指出的是,也有针对PHP的版本,您使用的php.ini文件的两个位置。 甲基苯丙胺可以从不同的路径,那么你正在编辑的一个被加载它。
例如,让我们说,我们正在使用PHP 5.3。 下面是一些可能混淆对要编辑的一个人一个php.ini文件的两个位置。
/Applications/MAMP/bin/php/php5.3/conf/php.ini
你似乎在下面这个位置被编辑它:
/Applications/MAMP/conf/php5.3/php.ini
在第二条路径编辑时区,我没有工作,但编辑一个在第一个做到了。 这可能是因为您正在编辑了错误的文件,即使它看起来是一样的。 我已经在我的版本测试这一点。 运行<?php phpinfo(); ?>
<?php phpinfo(); ?>
在PHP文件和检查php.ini文件的路径将始终显示正确的路径。
也只是想指出,使用围绕date.timezone值双引号将工作。 例如,在我的php.ini文件中的以下工作。
date.timezone = "America/Vancouver"
也是默认值在双引号封装为好。
我还使用MAMP 2.1.1版测试这个出来的时候。
Answer 3:
请注意,有在/应用程序/ MAMP / conf目录不同版本的PHP。 您应该检查你正在使用的版本为甲基苯丙胺 - >首选项 - >选项卡“PHP”
如果设置为5.4.4,必须访问/Applications/MAMP/conf/php5.4.4/php.ini
@编辑
在终端这个运行:
sed -i '$ a\date.timezone = "America/New_York"' /Application/MAMP/conf/php{5.4.4,5.2.17,5.3.13,5.3.14,5.3.5,5.4.3}/php.ini
要么
sed -i 's/date.timezone = "Europe/Berlin"/date.timezone = "America/New_York"/g' /Application/MAMP/conf/php{5.4.4,5.2.17,5.3.13,5.3.14,5.3.5,5.4.3}/php.ini
Answer 4:
如果这个错误在PHP中的终端使用CLI显示出来,它可能是与本地VS MAMP PHP碰撞的问题。
MacOS X系统自带的预安装自己的PHP版本,这就是在shell当你键入运行php
。 甲基苯丙胺的PHP配置是分开的预安装PHP配置:改变MAMP PHP时区设置不影响你在CLI看到的 - 因此,时区错误仍然存在。 一个快速的方法来检查是运行which php
-如果你没有看到的路径开始/Applications/MAMP/...
您需要调整您的环境。
为了做到这一点,编辑.profile
(或bash RC文件)的文本文件,这行添加到它:
export PATH="/Applications/MAMP/bin/php5.5.3/bin:$PATH"
调整上述路径指向你想要的MAMP PHP安装。 然后运行:
. ~/.profile
hash -r
这将立即应用更改路径(否则你需要打开一个新的终端窗口以应用更改)。 第二个命令只是一个bash命令行清除缓存命令。
作为最后的检查,可运行which php
验证的PHP安装路径正在使用。 希望这可以帮助!
Answer 5:
在Ubuntu 13.10使用PHP 5.5.3打开你的终端,做
cd /
sudo find -name php.ini
它显示了我两个文件的php.ini它的结果:
./etc/php5/apache2/php.ini
./etc/php5/cli/php.ini
打开使用sudo这两个文件,我使用nano
sudo nano /etc/php5/apache2/php.ini
找到并修改该行:
;date.timezone =
并更改为:
date.timezone = America/Caracas
保存并关闭此文件并编辑另一个
sudo nano /etc/php5/cli/php.ini
找到并修改该行:
;date.timezone =
并更改为:
date.timezone = America/Caracas
保存并关闭并重新启动Apache与
sudo service apache2 restart
这个对我有用!!!
Answer 6:
grep -lr "Berlin" * | xargs sed -i .backup -e 's#Europe/Berlin#America/New_York#g'
上面的命令需要一些技巧在我的情况。 这将创建一个备份的文件。
文章来源: MAMP / PHP.INI: “date.timezone” setting in phpinfo() shows “no value” even though the value is set in php.ini