最近我沉迷docker,真的是遇到了很多很多坑,之后会慢慢记录下来。
这次先讲讲时区的问题,因为是我刚刚遇到的。
问题:我在个人网站上发表评论时,发现时间与当前隔了八小时,正好是格林尼治时间
解决步骤
因为我全用的docker,可是docker的nginx和php的时区我都改过了,进入容器 “date -R” 打印的时间都是当前时间没错,进一步打开php的日志记录,发现记录的时间都是格林尼治时间。
因此问题应该出在php配置上。
步骤一
docker时区修改
使用docker-compose.yml的话
只需要这么写
services:
nginx:
image: 'nginx:latest'
……
environment:
- TZ=Asia/Shanghai
……
如果是用docker run的命令的话
只要加入-e参数
docker run -e TZ=Asia/Shanghai ……
现在容器中的时区都对了。
步骤二
php时区配置的修改
修改php.ini
date.timezone = Asia/Shanghai
如果是在docker运行的php,可得提前将本地配置文件挂载到容器里,直接加上这句话就行了。反正php-fpm读取配置是读取conf.d文件夹中所有ini配置文件
记得重启php-fpm的服务
接下来可以搞段测试代码
<?php echo date('Y-m-d H:i:s');