0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CakePHPで時刻のズレを修正するためにCakePHPやMySQLファイルをいくらいじっても改善されない場合の対処法

Last updated at Posted at 2018-05-02

ハマったこと

CakePHPで開発を進めていく中で記事の投稿日時が正しく表示されなかったので、
下記の記事などを参考にconfig/appやconfig/bootstrapをいじりましたが時刻のズレは改善されませんでした。

参考記事:CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法

環境

  • CentOS
  • Vagrant
  • CakePHP3.6
  • MySQL

原因

OS内部の時刻設定が正しく設定されていなかったことが原因でした。

試しに下記のコマンドを打ち込んでみると確かに時刻が大幅にずれていました。

$ date

根本となる時刻がずれていたのでいくらCakePHPやMySQLの設定をいじってみても意味がなかったのですね。

解決策

CentOSの時刻を正しく設定することで解決しました。

CentOS内の時刻を手動で合わせることで対応することも可能なのですが、この方法だと時間が経過するとまた時刻がずれてきてしまいます。

そこでNTPの日本標準時刻とCentOS内の時刻を常に同期させることで対応しました。

※「NTP」とは「Network Time Protocol」の略で、ネットワークを介してコンピュータ内部の時刻(システムクロック)を正しく同期させるための仕組みのことです。
参考記事:NTPとは? NTPの仕組み含めておおまかに解説

以下にNTPとの同期設定の方法を記述します。(下記設定は全てroot権限での設定となります。)

1.NTPをインストールする

$ yum install ntp

2.時刻を合わせる

$ ntpdate ntp.nict.jp

こちらのntp.nict.jpは日本標準時刻に直結しています。

3.ntp.confの編集

/etc/ntp.confを以下の通りに変更します。

変更前

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

変更後

server -4 ntp.nict.jp
server -4 ntp1.jst.mfeed.ad.jp
server -4 ntp2.jst.mfeed.ad.jp
server -4 ntp3.jst.mfeed.ad.jp

4.ntpdの起動

$ service ntpd start

NTPのデーモンを起動します。
※デーモンとはUNIX系OSの常駐プログラムのことです。

$ chkconfig ntpd on

次回サーバー起動時より自動でNTPデーモンを起動するように設定します。

5.日時の確認

$ date

日時が現在時刻となっていればOKです。
私はこの段階で現在時刻が正常に表示されました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?