Подтвердить что ты не робот

Невозможно установить часовой пояс по умолчанию в PHP

Я установил это в свой файл php.ini и перезапустил процесс php5-fpm

date.timezone = "UTC"

Но phpinfo() script все еще показывает это:

date.timezone   America/New_York    America/New_York

phpinfo() также показывает, что используется правильный файл ini.

Я перезапустил, но проблема не исчезла. Затем я сделал:

sudo service nginx stop
sudo service apache2 start

и date.timezone правильна, когда mod-php (apache2) используется вместо fcgi, который является php в nginx.

4b9b3361

Ответ 1

Возможно, вы отредактировали неправильный php.ini. См. php_info() (или php -i для интерпретатора cli), который используется. Например, на ubuntu (и, возможно, других дистрибутивах Linux) его /etc/php5/cli/php.ini для cli-интерпретатора, /etc/php5/apache/php.ini/ для того, который используется Apaches mod_php и /etc/php5/cgi/php.ini, используемого php5-cgi (который используется nginx).

Ответ 2

Список поддерживаемых значений часового пояса: http://php.net/timezones

Ответ 3

Проблема, похоже, связана с процессами php-fpm, которые задерживаются и ссылаются на старые параметры файла php.ini. Это сработало для меня:

Получить идентификаторы процесса для php-fpm

[email protected]:/etc/php5/fpm/conf.d# ps aux | head -1 && ps aux | grep php-fpm | grep -v grep
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root     32650  0.0  0.5  86624 17032 ?        Ss   21:44   0:00    php-fpm: master process (/etc/php5/fpm/php-fpm.conf)                    
www-data 32652  0.0  0.1  86624  4700 ?        S    21:44   0:00 php-fpm: pool www                                                       
www-data 32653  0.0  0.1  86624  4704 ?        S    21:44   0:00 php-fpm: pool www   

Убейте процессы. Начиная с мастера.

kill -9 32650
kill -9 32652
kill -9 32653

Запустите php-fpm, используя init script

service php5-fpm start or /etc/init.d/php5-fpm start