商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何在Ubuntu中配置PHP的时区

如何在Ubuntu中配置PHP的时区

  发布于2026-07-19 阅读(0)

扫一扫,手机访问

在 Ubuntu 里给 PHP 配时区,这事儿其实挺简单的,但确实有不少人在这上面翻车——明明改好了系统时间,PHP 却还是错的。问题就出在 PHP 有自己的时区配置,和系统的 timedatectl 不是一回事。下面直接把这套流程拆开来走一遍,每一步该干什么、为什么要干,说清楚。

第一步,打开终端。 快捷键 Ctrl + Alt + T,这个应该不用多解释。

第二步,确认 PHP 已经装好了。 如果还没装,顺手装一下,带上常用的扩展:

sudo apt update
sudo apt install php php-cli php-fpm php-json php-common php-mysql

这里装的是 PHP 的基础包,如果你已经有特定版本需求,比如 7.4 或 8.1,把 php 替换成 php7.4 就行。

第三步,查看可用的时区列表。 其实你不需要把所有时区都背下来,命令跑一下看看格式就懂了:

timedatectl list-timezones

第四步,选一个合适的时区。 比如在中国,最常用的就是 Asia/Shanghai。直接用下面的命令把系统时区设过去,注意这只是改了系统时钟,和 PHP 还没关系:

sudo timedatectl set-timezone Asia/Shanghai

如果你想用别的时区,把 Asia/Shanghai 换成你选的那个就行。

第五步,找到 PHP 的配置文件 php.ini 这个文件位置取决于你的 PHP 版本和使用场景。一般会有两个,一个给命令行用,一个给 Web 服务器用(比如 Nginx 或 Apache)。常见的路径长这样:

  • /etc/php/7.x/cli/php.ini (命令行版本)
  • /etc/php/7.x/fpm/php.ini (PHP-FPM 版本)

7.x 换成你实际安装的版本号,比如 8.1。如果你不确定 PHP 版本,可以跑 php -v 看一下。

第六步,编辑 php.ini 推荐用 nano,简单直接:

sudo nano /etc/php/7.x/cli/php.ini

如果你用的是 PHP-FPM,那就打开对应的 fpm 版本:

sudo nano /etc/php/7.x/fpm/php.ini

第七步,找到 date.timezone 这个配置项。 它通常被注释掉了(前面有个分号)。去掉分号,然后把值改成你想要的时区,比如:

date.timezone = "Asia/Shanghai"

如果你在文件里找不到这个配置项,别急,直接在文件末尾加上这一行就行。保存并退出编辑器(nano 里按 Ctrl+O 保存,Ctrl+X 退出)。

第八步,改完配置别忘重启服务。 这一步至关重要,很多人改完 php.ini 发现没生效,八成是没重启。具体重启什么取决于你的 Web 服务器

  • 如果是 Nginx + PHP-FPM:
sudo systemctl restart php7.x-fpm
sudo systemctl restart nginx
  • 如果是 Apache + PHP-FPM:
sudo systemctl restart php7.x-fpm
sudo systemctl restart apache2

同样,记得把 7.x 换成你的实际版本号。

第九步,验证一下。 写个最简单的 PHP 文件,比如 timezone_test.php,内容就一行:

用浏览器或者命令行访问这个文件,如果输出的是 Asia/Shanghai,就说明配置成功。要是输出的还是 UTC 或其他值,回头检查一下 php.inidate.timezone 是不是没改对,或者重启步骤漏了。

至于为什么非要分开配置?系统时区是给底层服务的,PHP 有自己的时区处理逻辑,两者独立。你在系统级改了 Asia/Shanghai,PHP 如果没配,它照样默认 UTC。这就是很多新手踩坑的地方——系统时间看着是对的,但程序输出总是差 8 小时。现在搞明白了,以后就不会再被这个问题卡住了。

本文转载于:https://www.yisu.com/ask/56893830.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注