发布于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 服务器:
sudo systemctl restart php7.x-fpm
sudo systemctl restart nginx
sudo systemctl restart php7.x-fpm
sudo systemctl restart apache2
同样,记得把 7.x 换成你的实际版本号。
第九步,验证一下。 写个最简单的 PHP 文件,比如 timezone_test.php,内容就一行:
用浏览器或者命令行访问这个文件,如果输出的是 Asia/Shanghai,就说明配置成功。要是输出的还是 UTC 或其他值,回头检查一下 php.ini 里 date.timezone 是不是没改对,或者重启步骤漏了。
至于为什么非要分开配置?系统时区是给底层服务的,PHP 有自己的时区处理逻辑,两者独立。你在系统级改了 Asia/Shanghai,PHP 如果没配,它照样默认 UTC。这就是很多新手踩坑的地方——系统时间看着是对的,但程序输出总是差 8 小时。现在搞明白了,以后就不会再被这个问题卡住了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8