事象
タイトルの通りです。
環境
- 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();
?>
あれ?なんかWarning出てるし、Default timezoneが「UTC」のままだ。
何故だ?...
4. そもそもphp.iniファイルが正しく読み込まれているか確認
ターミナル
$ php -i
...
Loaded Configuration File => (none)
...
あちゃー、(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を確認してみると...
よしよし。そして肝心のtimezoneはというと...
よっしゃー。php.iniのtimezone設定が有効になったー。
以上、解決
ありがとうございました。
参考文献
「PHPINIDir」でphp.iniのパスを指定
※こちらの記事のPHP7用の設定をPHP5用に焼き直しました。ありがとうございましたm(_ _)m