相关疑难解决方法(0)

"phpinfo():依靠系统的时区设置是不安全的......"

在运行Blue.box的php安装脚本(FreeSwitch PBX的前端)时,我收到有关时区故障的错误.

然后我开始挖掘.我不确定此时发生了什么.但这就是我所拥有的:

我在我的public_html目录中创建了一个包含一行的info.php文件:

我得到这个错误和输出

警告:phpinfo():依赖系统的时区设置是不安全的.您需要使用date.timezone设置或date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们在第1行的/home/0default/public_html/info.php中选择'America/New_York'作为'EDT/-4.0/DST'

date/time

     support    enabled
    "Olson" Timezone Database Version   0.system
    Timezone Database   internal
    Default timezone    America/New_York

    Directive   Local Value Master Value
    date.default_latitude   31.7667 31.7667
    date.default_longitude  35.2333 35.2333
    date.sunrise_zenith 90.583333   90.583333
    date.sunset_zenith  90.583333   90.583333
    date.timezone   America/New_York    America/New_York
Run Code Online (Sandbox Code Playgroud)

我创建了一个文件/etc/php.d/timezone.ini,其中包含以下内容:

[root@mercury php.d]# cat timezone.ini
; default time zone
date.timezone='America/New_York'
[root@mercury php.d]#
Run Code Online (Sandbox Code Playgroud)

我可以将时区更改为America/Los_Angeles(例如),并在apache重启后"date.timezone"字段正确更改.

但我仍然得到错误.

有任何想法吗?

---附加说明---

如果我更改/etc/php.d/timezone.ini文件:

[root@mercury php.d]# cat timezone.ini
; default time zone
date.timezone='America/Los_Angeles'
Run Code Online (Sandbox Code Playgroud)

我可以更改info.php输出:

日期

警告:phpinfo():依赖系统的时区设置是不安全的.您需要使用date.timezone设置或date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们在第1行的/home/0default/public_html/info.php中选择'America/New_York'作为'EDT/-4.0/DST'

date/time support   enabled
"Olson" Timezone Database Version …
Run Code Online (Sandbox Code Playgroud)

php timezone ini datetime date

7
推荐指数
1
解决办法
2万
查看次数

即使设置了date.timezone,PHP DateTime也会引发时区警告

我经常收到以下错误:

DateTime :: createFromFormat():依赖系统的时区设置是不安全的.您需要使用date.timezone设置或date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们现在选择了时区'UTC',但请设置date.timezone以选择您的时区.在

虽然我已经在我的php.ini中指定了DateTime设置,如下所示:

date.timezone = Asia/Jakarta
Run Code Online (Sandbox Code Playgroud)

任何的想法?

php

6
推荐指数
2
解决办法
2万
查看次数

设置php.ini的自定义路径(不在Apache中)

我正在尝试学习Symfony"需要"在命令行/终端中使用php执行某些任务.

我喜欢将我存储php.ini/apache2/conf目录中,以便将所有服务器配置在一个地方(并且每次我更改内容时都不必处理Windows的UAC).在Apache中,通过设置默认的php.ini位置没有问题

PHPIniDir "C:/apache2/conf"
Run Code Online (Sandbox Code Playgroud)

但是,当从终端运行php时 - 而不是通过apache服务器 - 默认情况下它会在C:\ Windows目录中查找该文件,尽管那里没有:

C:\>php -i
...
Configuration File (php.ini) Path => C:\Windows
Loaded Configuration File => (none)
Scan this dir for additional .ini files => (none)
Additional .ini files parsed => (none)
...
Run Code Online (Sandbox Code Playgroud)

当然,我可以通过php -c C:\apache2\conf ...每次使用它来绕过它,但我更喜欢更简单和永久的解决方案.

这可能吗?提前致谢!

php

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

php ×3

date ×1

datetime ×1

ini ×1

timezone ×1