Почему я получаю следующее предупреждение PHP каждый раз, когда я открываю Terminal.app в OS X?
Последний вход в систему: Пн Дек 22 11:53:25 on ttys000
Предупреждение PHP: Неизвестно: Это
небезопасно полагаться на настройки часового пояса системы. Вы
требуется использовать настройку date.timezone или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих
методы, и вы все еще получаете это предупреждение, вы, скорее всего,
неправильно указали идентификатор часового пояса. Мы выбрали часовой пояс UTC для
сейчас, но, пожалуйста, установите date.timezone, чтобы выбрать ваш часовой пояс. в неизвестном
на линии 0машина: ~ пользователь $
Я заметил это только сегодня, ранее у меня не отображалось это предупреждение.
У меня есть PHP date.timezone, установленный внутри php.ini:
[Date]
; Defines the default timezone used by the date functions
; Will be changed by MAMP to system timezone
date.timezone = "Europe/Moscow"
Эта директива находится внутри php.ini, расположенного по адресу /Applications/MAMP/bin/php/php5.6.2/conf/php.ini, который является единственным файлом конфигурации PHP, который мой PHP использует из CLI:
machine:~ user$ which php
/Applications/MAMP/bin/php/php5.6.2/bin/php
machine:~ user$ php -i | grep "Configuration File"Configuration File (php.ini) Path => /Applications/MAMP/bin/php/php5.6.2/conf
Loaded Configuration File => /Applications/MAMP/bin/php/php5.6.2/conf/php.ini
Я также проверил php.ini предустановленного PHP внутри /private/etc/php.ini (с псевдонимом /etc/php.ini), и там я также установил директиву date.timezone.
Так почему я до сих пор получаю это неприятное предупреждение?
Спасибо за внимание!
РЕДАКТИРОВАТЬ: это вывод php --ini
:
Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.6.2/conf
Loaded Configuration File: /Applications/MAMP/bin/php/php5.6.2/conf/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
Кажется, что единственный загруженный файл conf — это php.ini из MAMP, но почему я продолжаю получать это предупреждение при запуске терминала?
Я нашел проблему. Именно эта строка внутри .bash_profile в моем Главная папка:
export PHP_API_VER=`php -i | grep 'PHP Extension =' | grep -oE '[0-9]+'`
Я использую эту переменную, чтобы узнать, какое расширение PHP API я сейчас использую. Поскольку этот переменный экспорт был после этого:
PATH="$MAMP_PHP_BIN_FOLDER:$PATH"
Который добавляет папку bin bin (где PHP команда находится) в PATH env var, я столкнулся с этой ошибкой, потому что при открытии Terminal.app неправильно PHP была использована команда, я должен был поставить экспорт PHP_API_VER после PATH.
Затем я спросил себя: «Почему я получаю это предупреждение, если у меня есть предустановленные PHP-файлы MAMP PHP и OS X с установленной директивой date.timezone?», И ответ был: which php
когда .bash_profile загрузился, что показало:
/usr/local/bin/php
Какие?! У меня была установлена другая версия PHP, о которой я забыл (я установил ее с помощью HomeBrew). Поэтому я проверил php.ini этой команды php, добавил директиву date.timezone, и теперь все отлично и работает.
До свидания!
Других решений пока нет …