質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

4254閲覧

仮想 centos7 wordpress 時間がずれる

leo

総合スコア11

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2017/12/16 07:06

編集2017/12/16 23:20

###前提・実現したいこと
Wordpressの管理画面の一般設定で世界標準時 (UTC) が日本時間になっているのをきちんとUTC時間にしたい。

WORDPRESSの一般設定のUTCは具体的にどこのデータを引っ張ってくるのでしょうか。
ご存知の方いらっしゃいましたら、ご教授いただけますと幸いです。

###発生している問題・エラーメッセージ
WordPressの投稿時間がずれているので、確認したところ、
管理画面の一般設定で「タイムゾーン:東京」になっているにもかかわらず、世界標準時 (UTC) が東京の時刻になっており、現地時間はさらに+9時間を指している状態です。

###試したこと
真っ先に、サーバーの時刻設定を疑って確認しましたが、問題なかったです。

# timedatectl status(実際の時間2017-12-16 15:40:08) ---------------------------------------------------- Local time: 土 2017-12-16 15:40:08 JST Universal time: 土 2017-12-16 06:40:08 UTC RTC time: n/a Time zone: Asia/Tokyo (JST, +0900) NTP enabled: n/a NTP synchronized: yes RTC in local TZ: no DST active: n/a ----------------------------------------------------

次にphp.iniの記述を疑いましたが、きちんとAsia/Tokyoが指定されてました。

# vi /etc/php.ini ---------------------------------------------------- [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Tokyo ----------------------------------------------------

念のため、PHPのコマンドでデータ取得しても日本時間を取得できてました。

# echo '<?php echo date_default_timezone_get(); ?><?php echo date("Y/m/d H:i:s "),"\n"; ?>' | php ---------------------------------------------------- Asia/Tokyo2017/12/16 15:41:07 ----------------------------------------------------

仮想コンテナを別で作成して、CENTOS7,PHP5.6,Mysql5.6,httpd2.4.6の環境でwordpressをインストールするとデフォルトの設定で「タイムゾーン東京」で「現地時間」が日本時間を指してました。

このため仮想サーバーホストの問題ではなく、WordPressもしくはPHP、Apache,mysql等あたりに原因があるのではないかと考えておりますが、思いつくところで、なにが原因でUTCが現地時間になっているのかわからない状況です。

WORDPRESSの一般設定のUTCは具体的にどこのデータを引っ張ってくるのでしょうか。
ご存知の方いらっしゃいましたら、ご教授いただけますと幸いです。

###補足情報(言語/FW/ツール等のバージョンなど)
openvz仮想コンテナ
OS:CentOS Linux release 7.4.1708 (Core)
カーネル:openvz-042stab123.2-amd64
PHP:5.6.32
mysql:5.7.20
OpenSSL:1.0.2k-fips
httpd
Server version: Apache/2.4.29 (CentOS)
Server built: Oct 23 2017 14:34:32
Server's Module Magic Number: 20120211:68
Server loaded: APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: event
threaded: yes (fixed thread count)
forked: yes (variable process count)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

9時間ズレる仕様なのでPHPの標準的な出力方法だと9時間プラスして出力する以外に方法はありません。
ですのでWordPressの仕様に沿った方法を使ってください。

// 9時間ズレた日時 echo date( 'Y/m/d H:i:s' ); // 正確な現在日時 echo current_time( 'Y/m/d H:i:s' ); // 正確な投稿日時 echo get_the_date( 'Y/m/d H:i:s' ); などなど

追記
wp-settings.phpdate_default_timezone_set( 'UTC' );です。

投稿2017/12/16 07:26

編集2017/12/16 07:53
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

leo

2017/12/16 07:57

Space-Monkeyさん、 今回もご回答くださりありがとうございます。 ご回答いただいている関数はどこに設定すると、一般設定のUTC時間がかわりますでしょうか? ホスト機が問題ないことを切り分けるために、 同じ仮想ホストからコンテナ作成し、別途CENTOS7(ミドルウェアは違います)を入れて検証したところ、そちらではきちんと一般設定のUTCの時刻がUTCのものとなっておりました。 今回http2化したのですが、それにあたり、いろいろいじくってしまったのが原因なのかなとおもっておったりするのですが、そもそもWordpressの管理画面の一般設定のUTC時刻はどういった仕組みで表示されているのでしょうか。 よろしければご回答いただけますと幸いです。 よろしくお願いいたします。
leo

2017/12/16 07:58

追加のご回答ありがとうございます。 ご回答いただいた関数の設定箇所につきましては把握できました。
退会済みユーザー

退会済みユーザー

2017/12/16 08:52

すみません、質問に対し目茶苦茶な回答してました(;^_^A どこから時間を引っ張ってきているのか?ということでしょうか? 管理画面にアクセスすると裏でwordpress.orgと通信していますが、多分そこではないと思いますが詳しく知りません。 ちょっと調べてみますがアテにしないでくださいね。
leo

2017/12/16 09:34

Space-Monkeyさん いつも親身にお答えくださってありがとうございます。 わかりにくい質問ですみません。 なぜこのコンテナ環境だけ一般設定のUTC時刻が現地時間になっているのかがわからなくて。 そもそも、ここのUTC時間はどこを参照しているかがわかれば、解決できるのかなと思いまして、質問いたしました。 もし何かお分かりになりましたら、教えていただけますと助かります!
退会済みユーザー

退会済みユーザー

2017/12/17 03:46

WordPressはサーバーの日時を取得しているのでdateコマンドで適当な日時に変更すると管理画面の日時も変わりました。 同じような症状かと思います。 https://wordpress.org/support/topic/utc-time-wrong/ tzdataパッケージを再インストールする事で直ったそうです。 # yum reinstall tzdata # systemctl restart httpd
leo

2017/12/17 13:45

Space-Monkeyさん お忙しいところ、お調べいただきありがとうございます。 # yum reinstall tzdata # systemctl restart httpd こちらを試してみましたが、やはりWORDPRESSの一般設定のタイムゾーンでは相変わらずUTCが日本現地時間になっておりました。 ---------------------------------------------------------------------------- 世界標準時 (UTC) は 2017-12-17 22:37:03 です。 現地時間は 2017-12-18 07:37:03 です。 ---------------------------------------------------------------------------- サーバーの日時を取得するということですが、timedatectl statusで取得されるUniversal timeではなくLocal timeを見に行っているのが、なぜなのかが不明です。 # timedatectl status ------------------------------------------------------- Local time: 日 2017-12-17 22:37:30 JST Universal time: 日 2017-12-17 13:37:30 UTC RTC time: n/a Time zone: Asia/Tokyo (JST, +0900) NTP enabled: n/a NTP synchronized: yes RTC in local TZ: no DST active: n/a ------------------------------------------------------- ねんのため、dateコマンド実行すると、きちんとLocalTimeをみております。 # date ------------------------------------------------------- 2017年 12月 17日 日曜日 22:38:33 JST ------------------------------------------------------- このため、WordPressの時間は直接サーバーではなく、どこか別のミドルウェアが保持している時刻データを取得しているのではと考えているのですが、やはり直接サーバーの日時データを取得しているのでしょうか?
退会済みユーザー

退会済みユーザー

2017/12/17 14:04

試しに出鱈目な日時を設定したらどうなりますか? こんな感じで… # date -s "11/11 11:11 2017"
leo

2017/12/18 05:27

Space-Monkeyさん ご連絡が遅くなり申し訳ございません。 WordPressを入れなおしたら、UTCの設定が正常に読み込まれました。 お教えいただいた手順で解決した模様です。 # yum reinstall tzdata # systemctl restart httpd 今回も解決していただき本当にありがとうございます。 Space-Monkeyさんのようにスキルアップできるよう頑張ってまいりますので、今後ともよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問