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();
    
    ?>
    



    어라? 왠지 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의 경로 지정을 추가.
    그리고 아파치 재부팅.

    터미널
    $ 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

    좋은 웹페이지 즐겨찾기