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

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

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

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

1188閲覧

PHP 時刻合わせ

usamino

総合スコア59

CentOS

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

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

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2020/01/22 13:28

編集2020/01/24 11:12

ローカル環境におけるPHPの時刻がうまくいきません。
環境は以下で試しております。
Windows
CentOS6
Laravel

何度試して再起動しても現在時刻より30時間ほど前の時間を示しております。

原因はおそらくDefault timezone が「UTC」になっている事が原因かと思うのですが「Asia/Tokyo」に変更したく思います。

試したこと
1 php.iniの場所の確認

[vagrant@localhost ~]$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

2 etc/php.iniに  
date.timezone = "Asia/Tokyo" の追加

3 PHPinfo();で
Loaded Configuration File
/etc/php.ini   の確認

4 Laravelの
config/app.php で
'timezone' => 'UTC', ⇒ 'timezone' => 'Asia/Tokyo',

5 再起動
phpinfo();
Default timezone UTC のまま変化していない。

追加
6 /etc/httpd/conf/httpd.conf 書き換え後アパッチ再起動

ServerName localhost:80   //書き換え

vagrant@localhost ~]$ sudo service httpd restart
Stopping httpd: [ OK ]
Starting httpd:                     [ OK ]

その後パソコンの再起動もしましたが時刻は変化しておりませんでした。

追加
7 vagrantの停止・再起動の方法が間違えていたようで「vagrant suspend」で試していたのですが方法を変更しました。「vagrant halt」⇒「vagrant reload」⇒「vagrant up」と試してみました。

現在時刻は              2020年1月23日16時31分
echo date("Y/m/d H:i:s");表示は  2020/01/22 22:32:06
でした。
時間は縮まった気がしますが
「Default timezone UTC」が以前のままでした。

8 
$ date
Thu Jan 23 23:36:57 JST 2020
$ ntpq -p
-bash: ntpq: command not found

ntpq導入
yum install ntp

Package ntp-4.2.6p5-15.el6.centos.x86_64 already installed and latest version
Nothing to do


再起動

sudo yum install ntp
$ date
Thu Jan 23 23:50:42 JST 2020
$ ntpq -p
ntpq: read: Connection refused

※vagrant立ち上げる際に
ーーー
Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=500,gid=500 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

上記のような警告が出ていました。
何かおかしな事してしまったのかもしれません。

イメージ説明

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

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

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

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

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

m.ts10806

2020/01/22 13:44

「再起動」は何を再起動したのでしょうか。
usamino

2020/01/22 14:08

vagrant、CentOSを再起動したのですが反映されていなかったのでパソコンも再起動してみましたがうまくいきませんでした。
m.ts10806

2020/01/22 14:11

Webサーバ(Apacheなど)を再起動しないとphp.iniやhttpdの編集内容は反映されないと思います。
usamino

2020/01/22 15:36

アパッチの再起動を調べて試しましたが現在も写真の状態のままとなっておりました。
mike2mike4

2020/01/22 16:35

UTCとJSTとの時差は9時間なので、ちょっと違うような……
退会済みユーザー

退会済みユーザー

2020/01/22 16:55 編集

失礼。 よくみたら書いていましたね。 間違えていた様なので削除します。
退会済みユーザー

退会済みユーザー

2020/01/23 00:02

日時をどうやって確認しているかを示してほしい。過去質問に、format文字列を誤って使っていた事例がある。
退会済みユーザー

退会済みユーザー

2020/01/23 00:04

コンソールのphpとwebからのphpが異なる過去質問もあったので、php -iよりもphpinfo()のiniファイルを確認すること。
usamino

2020/01/23 00:35

たくさん写真をアップ出来ればよいのですが一枚しかあげれないようなので少ない情報で申し訳ありません。 時刻はブラウザで echo date("Y/m/d H:i:s"); //表示は2020/01/21 19:41:31 今現在の本当の日時は    //   2020/01/23 9時30分です。
退会済みユーザー

退会済みユーザー

2020/01/23 06:24

ホストOS上でvagrant haltするか、ゲストOS上でrebootするのが、適切な再起動につながると思うのですがやっておられますか? vagrant suspendだと再起動にならないと言われているので気になりまして。
退会済みユーザー

退会済みユーザー

2020/01/24 09:19

phpinfo()の指摘はスルーされたままなのですが。同じphp.iniかどうか、反映されないところを変更しても意味がないので、ここは必ずphpinfo()で確認してほしい。
usamino

2020/01/24 10:46

申し訳ありません。 写真を入れ替えさせて頂きました。 宜しくお願い致します。
退会済みユーザー

退会済みユーザー

2020/01/24 10:59

php -i と phpinfo() で指し示すphp.iniは同じだったのですね。ありがとうございます。
usamino

2020/01/24 11:00

いえ、写真を入れ替えるという方法が思いつかず申し訳ありませんでした。本当は4枚くらい一度にアップしたかったのですが出来ないみたいです。
退会済みユーザー

退会済みユーザー

2020/01/24 13:08 編集

ならば、 /etc/php.ini のownerとgroupはどうなっているでしょうか。webサーバープロセスから読み取れないようなowner/group/アクセス権になっている可能性を確認したいです。 例えば ls -l /etc/php.ini
退会済みユーザー

退会済みユーザー

2020/01/24 11:08

UTCで9時間、その他でも21時間ずれてるならサーバーの時間があってません。 NTP 併せようとしてもエラーになって会ってないのでは?
usamino

2020/01/24 11:13

ownerの確認はどこからすれば良いのかを知りません。 上記でよろしいでしょうか?
usamino

2020/01/24 11:14

$ ntpq -p ntpq: read: Connection refused と出てエラーになっているようです。 原因がここにあるような気はするのですが。
guest

回答1

0

ベストアンサー

ntpdを入れたようなので…

bash

1$ date 2$ ntpq -p

仮想マシンの時刻は、推奨としては、ホストの時刻を合わせ、
さらに、仮想マシン内でも独自にntpdやchrony(CentOSだと7以降で利用可能)で合わせる感じになるかと思います。

というのも、VirtualBox(に限らず一般的にhypervisor)の仮想マシンは、通常のpoweronのときは、ホストから時刻を取得します。
ホストの時刻がずれていると、timezoneがどうであろうと、まともな時刻で、kernelが開始できません。

まずはホストの時刻をちゃんと合わせてください。
おそらくtime.windows.comへのreachabilityがなければ、
到達可能なntpサーバーを指定してやってください。(nictは到達できない??)
お使いのネットワーク環境で、ホストがまともなntpサーバーにまず接続できていないように思えます。

ntpdがインストールされたようですが、その後は、ntpdの設定を終わらせないといけません。
/etcの下のntpの設定に
"server 到達可能なntpサーバー iburst"
行を追加して
pool.centos.....
行をコメントアウトしてください。

到達可能なntpサーバーへの接続に成功すると、
ntpq -pが正しく成功するはずです。
(話はそれからだ)

投稿2020/01/24 06:57

編集2020/01/24 08:35
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2020/01/26 23:39 編集

あとvboxsfの話は、VirtualBoxのGuest Additionのバージョンが合ってないときでる(と推測できる)けど、本筋とはそれるので、ここではとりあえず後回し。 したかったんですけど気になってるみたいなので、本論とはそれますが、以下でかんたんに解説します。 結論めいたことを言うと、なにか設定がおかしくなったのではなく、何もしていないから、おかしくなっているんです。 以下でわからないことがあればぐぐるか、一旦その話は後回しで(一通り解決したあと、おつきあいするので)、ご参考にとどめておいてください。 # 本筋とはそれる話 Virtual Boxに限らず、VMwareやHyper-V、XenServerなどのハイパーバイザは、物理実機で動くのをエミュレーション(実機で動いているフリをする)ため専用のNIC、HDDなどのドライバが要ります。 VirtualBoxの場合は、GuestAdditionsという名称(VMwareならvmwaretoolsとかXenServerならXenServerToolsなどなど)なのですが、これは基本的には、ハイパーバイザとバージョンを揃える必要があります。 普通にVagrantBoxをダウンロードしただけだと、そのBoxを作成してくれた人の環境にインストールされているVirtualBoxのバージョンのGuest Additionsになっているため、適宜お使いのVirtualBoxの環境でインストールし直す必要があるわけです。 で、GuestAdditionsが合っていないときに、よく動かなくなるのがvboxsfです。 この機能は何に使われているかというとVagrantではたいてい、その仮想マシン環境内から/vagrantディレクトリに、外部のVagrantfileをおいてあるフォルダがマウント(とりあえず接続ぽいと理解してください)される、っていう機能が実現されているそれです。 で、バージョンが合ってないとマウントできなくなるのです。
usamino

2020/01/24 10:45

何か変な設定になってしまっているのですね。 私はCentOS6なのですが参考にさせて頂きます。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2020/01/27 01:55 編集

とりあえず、CentOS6は、あんまりもう触っていないので(訂正:VM作りました)。 /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 が、おそらく接続できないntpサーバーなのでこの行をコメントアウトするなり、削除するなりして、Windowsホストで接続可能なntpサーバーに書き換えてください。 connection refusedは、接続拒否られてるって話ですから、普通に、ntpサーバーに接続できてない。 ファイルのntpdの設定を正常化して、ntpq -pがちゃんと通る様にしてください。 そのあと、localeを変えるのですが、まずntpqが通らないと混乱のもと。
usamino

2020/01/27 05:58

ありがとうございます。 今少し触れない状況なので後で実践させて頂こうと思います。 自分で試行錯誤しているうちにおかしな処理をしたのが原因かと思います。 最悪は最初から再インストールしてみようとも思いますが自分の症状が少し特殊な状態とわかっただけで本当に救われております。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問