php怎么下载安装后设置时区_phpini timezone配置【操作】

18次阅读

php 未设置 date.timezone 会导致时间函数警告,需通过 php –ini 定位 php.ini 并在 [Date] 段下配置 date.timezone = Asia/Shanghai,修改后重启 Web 服务,或用 date_default_timezone_set() 等临时方案。

php怎么下载安装后设置时区_phpini timezone配置【操作】

PHP 下载安装后,date.timezone 未设置会导致 strtotime()date() 等函数抛出警告(如 Warning: date(): It is not safe to rely on the system's timezone settings),必须显式配置时区,不能依赖系统默认。

怎么确认 PHP 是否已安装并找到 php.ini 文件

先验证 PHP 是否可用,并定位配置文件位置:

  • 终端执行 php -v 确认安装成功
  • 运行 php --ini 查看加载的 php.ini 路径(注意输出中 Loaded Configuration File 行)
  • 若显示 none,说明用的是默认内置配置,需手动创建或复制模板;常见路径包括:/etc/php/8.1/apache2/php.inidebian/ubuntu)、/usr/local/etc/php/8.2/php.inimacOS Homebrew)、C:phpphp.iniwindows)
  • windows 用户注意:安装包通常附带 php.ini-developmentphp.ini-production,需重命名为 php.ini 并选择其一使用

在 php.ini 中设置 date.timezone 的正确写法

编辑找到的 php.ini 文件,在 [Date] 段落下添加或修改这一行(不要加引号,大小写敏感):

date.timezone = Asia/Shanghai

常见合法值示例:

立即学习PHP免费学习笔记(深入)”;

  • Asia/Shanghai(中国大陆标准时间,推荐)
  • Asia/Chongqing(等效于 Shanghai,但已不推荐)
  • Europe/BerlinAmerica/New_YorkUTC
  • 禁止使用缩写如 GMT+8CSTPST —— 这些不是 IANA 时区标识符,PHP 会静默忽略或报错
  • 修改后必须重启 Web 服务(如 sudo systemctl restart apache2sudo brew services restart php),CLI 模式下无需重启,但需确保下次运行用的是新配置

如果无法修改 php.ini,有哪些临时替代方案

某些共享主机或容器环境不允许改全局配置,可考虑以下方法,但注意优先级和适用范围:

  • 脚本开头调用 date_default_timezone_set('Asia/Shanghai') —— 仅对当前请求有效,且必须在任何 date() / strtotime() 前执行
  • Apache 的 .htaccess 中加:php_value date.timezone "Asia/Shanghai"(需 AllowOverride All 且 PHP 为模块模式)
  • PHP-FPM 池配置中设:php_admin_value[date.timezone] = Asia/Shanghai(更安全,管理员级覆盖)
  • 环境变量方式(不推荐):export TZ=Asia/Shanghai 对 CLI 有效,但对 Web SAPI 无效,且不被 date() 函数识别

真正生效的判断依据只有一个:运行 php -r "echo date_default_timezone_get();" 输出你设的值。别信“改了就完事”,很多问题出在改了错误的 php.ini 文件,或者没重启服务,或者用了 CLI 和 Web 两套不同配置。

text=ZqhQzanResources