Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

PHPでdate.timezoneを設定したのに反映されない時の対処法メモ(Macユーザー向け)

事象

タイトルの通りです。

環境

  • MacBook Pro (Retina, 13-inch, Mid 2014)
    • MacOS Sierra 10.12
    • PHP 5.5.38
    • Apache 2.4.23

対処法

1. ターミナルでPHPの設定ファイル(php.ini)のパスを確認

ターミナル
$ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/5.5
Loaded Configuration File:         /usr/local/etc/php/5.5/php.ini <--ココ
Scan for additional .ini files in: /usr/local/etc/php/5.5/conf.d
Additional .ini files parsed:      /usr/local/etc/php/5.5/conf.d/ext-gmp.ini,
/usr/local/etc/php/5.5/conf.d/ext-pdo_pgsql.ini,
/usr/local/etc/php/5.5/conf.d/ext-xdebug.ini

2. php.iniでタイムゾーンを設定

ターミナル
$ vim /usr/local/etc/php/5.5/php.ini

...
 907 [Date]
 908 ; Defines the default timezone used by the date functions
 909 ; http://php.net/date.timezone
 910 ;date.timezone =
 911 date.timezone = "Asia/Tokyo" <--ココ("付けても付けなくてもOK)
...

3. 2で設定したタイムゾーンが反映しているか確認

ターミナル
$ php -i

...
date

date/time support => enabled
"Olson" Timezone Database Version => 2015.5
Timezone Database => internal
Default timezone => UTC
...
phpinfo()で確認する場合は以下記述してブラウザにてアクセス
<?php

phpinfo();

?>

dateのところ.png

あれ?なんかWarning出てるし、Default timezoneが「UTC」のままだ。
何故だ?...

4. そもそもphp.iniファイルが正しく読み込まれているか確認

ターミナル
$ php -i

...
Loaded Configuration File => (none)
...

configんとこ.png

あちゃー、(none)ってなってるし。そもそもあかんやん。

5. Apacheの設定ファイル(httpd.conf)でphp.iniのパスを指定してあげる

まずはhttpd.confファイルのパスを確認

ターミナル
$ apachectl -V

...
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

httpd.confファイルを編集、行末あたりに以下php.iniのパス指定を追記。
そしてApache再起動。

ターミナル
$ vim private/etc/apache2/httpd.conf

...
537 <IfModule php5_module>
538 PHPINIDir /usr/local/etc/php/5.5/
539 </IfModule>
...

$ sudo apachectl restart

6. 最終確認

再度phpinfoを確認してみると...

1.png

よしよし。そして肝心のtimezoneはというと...

2.png

よっしゃー。php.iniのtimezone設定が有効になったー。

以上、解決

ありがとうございました。

参考文献

「PHPINIDir」でphp.iniのパスを指定
※こちらの記事のPHP7用の設定をPHP5用に焼き直しました。ありがとうございましたm(_ _)m

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What are the problem?