MAMP / PHP.INI: параметр date.timezone в phpinfo () показывает «нет значения», даже если значение установлено в php.ini

Приветствуем гуру StackOverflow!

Вот проблема, с которой я борюсь.

Я запускаю phpinfo () в MAMP, и итоговая таблица показывает «нет значения» в обоих столбцах строки date.timezone.

Кроме того, на странице отображается следующее:

Предупреждение: phpinfo () [function.phpinfo]: Нельзя полагаться на настройки часового пояса системы. Вы должны использовать параметр date.timezone или функцию date_default_timezone_set (). Если вы использовали какой-либо из этих методов, и вы все еще получаете это предупреждение, скорее всего, вы ошиблись с идентификатором часового пояса. Мы выбрали 'America / New_York' для 'EST / -5.0 / no DST' вместо этого в /Applications/MAMP/bin/mamp/phpinfo.php

Однако в файле thr php.ini параметр выглядит следующим образом:

date.timezone = Америка / New_York

Я предвижу рекомендацию проверить правильность пути к php.ini – я уже это сделал, и путь действительно правильный: /Applications/MAMP/conf/php5.3/php.ini – это файл, который имеет значение.

Как я могу исправить эту проблему? Что мне не хватает?

Был бы благодарен за помощь от знающего человека.

Related of "MAMP / PHP.INI: параметр date.timezone в phpinfo () показывает «нет значения», даже если значение установлено в php.ini"

Если часовой пояс установлен правильно в соответствующем файле php.ini, и вы все еще получаете это сообщение, вы можете попробовать установить свою переменную окружения TZ. Измените свой .profile, чтобы добавить следующую строку (sub в вашей собственной строке часового пояса ):

export TZ="America/New_York" 

Непонятно, почему (a) MAMP переопределяет ваш параметр php.ini, (б) PHP не бросает уведомление / предупреждение при использовании переменной env TZ, хотя он говорит, что будет, но это решение сработало для меня с использованием MAMP 2.0.5 с PHP 5.3.6.

Я знаю, что может немного опоздать с ответом на это, но я вижу на нескольких сайтах, которые вы задаете, чтобы установить правильный часовой пояс в MAMP.

Следует отметить, что есть два места для файла php.ini для используемой версии php. MAMP может загружать его с другого пути, а затем на тот, который вы редактируете.

Например, скажем, мы используем php 5.3. Вот два расположения файла php.ini, которые могут смутить кого-то, на котором можно редактировать.

 /Applications/MAMP/bin/php/php5.3/conf/php.ini 

Кажется, вы редактируете его в этом месте ниже:

 /Applications/MAMP/conf/php5.3/php.ini 

Редактирование часового пояса во втором пути не сработало для меня, но редактирование первого в первом. Возможно, вы редактируете неправильный файл, хотя он выглядит одинаково. Я тестировал это на моей версии. Запуск <?php phpinfo(); ?> <?php phpinfo(); ?> в php-файле и проверка пути к файлу php.ini всегда будет показывать правильный путь.

Также просто указать, используя двойные кавычки вокруг значения date.timezone будет работать. Например, в моем файле php.ini работает следующее.

 date.timezone = "America/Vancouver" 

Также значение по умолчанию было заключено в двойные кавычки.

Я также использовал MAMP версии 2.1.1, когда тестировал это.

Обратите внимание, что существуют разные версии PHP в / Applications / MAMP / conf . Вы должны проверить, какую версию вы используете в MAMP -> Preferences -> Tab "PHP"

Если установлено значение 5.4.4, вы должны получить доступ /Applications/MAMP/conf/php5.4.4/php.ini

@редактировать

Запустите в терминале:

 sed -i '$ a\date.timezone = "America/New_York"' /Application/MAMP/conf/php{5.4.4,5.2.17,5.3.13,5.3.14,5.3.5,5.4.3}/php.ini 

или

 sed -i 's/date.timezone = "Europe/Berlin"/date.timezone = "America/New_York"/g' /Application/MAMP/conf/php{5.4.4,5.2.17,5.3.13,5.3.14,5.3.5,5.4.3}/php.ini 

Если эта ошибка обнаруживается в использовании CLI терминального CLI, это может быть проблемой с конфликтом native и MAMP PHP.

MacOS X поставляется с предустановленной версией PHP, и это то, что работает в оболочке при php . Конфигурация PHP MAMP отличается от предустановленной конфигурации PHP: изменение настройки часового пояса MAMP PHP не влияет на то, что вы видите в CLI, поэтому ошибка часового пояса сохраняется. Быстрый способ проверить – запустить which php – если вы не видите путь, начинающийся с /Applications/MAMP/... вам нужно настроить вашу среду.

Для этого отредактируйте текстовый файл .profile (или bash RC file) и добавьте в него эту строку:

 export PATH="/Applications/MAMP/bin/php5.5.3/bin:$PATH" 

Отрегулируйте вышеуказанный путь, чтобы указать на нужную установку MAMP PHP. Затем выполните:

 . ~/.profile hash -r 

Это применит изменение PATH немедленно (в противном случае вам нужно будет открыть новое окно терминала для применения изменений). Вторая команда – это просто команда очистки кэша CLI.

В качестве окончательной проверки запустите which php чтобы проверить, какой путь установки PHP используется. Надеюсь это поможет!

В Ubuntu 13.10, используя php 5.5.3, откройте свой терминал и выполните

 cd / sudo find -name php.ini 

он показывает два файла php.ini для меня:

  ./etc/php5/apache2/php.ini ./etc/php5/cli/php.ini 

откройте оба файла, используя sudo, я использую nano

 sudo nano /etc/php5/apache2/php.ini 

найти и отредактировать эту строку:

 ;date.timezone = 

и измените на:

 date.timezone = America/Caracas 

Сохраните и закройте этот файл и отредактируйте другой

 sudo nano /etc/php5/cli/php.ini 

найти и отредактировать эту строку:

 ;date.timezone = 

и измените на:

 date.timezone = America/Caracas 

Сохраните и закройте и перезапустите apache с помощью

 sudo service apache2 restart 

Меня устраивает!!!

grep -lr "Berlin" * | xargs sed -i .backup -e 's#Europe/Berlin#America/New_York#g'

Приведенная выше команда нуждалась в некоторой утонченности в моем случае. Это также создаст файлы резервных копий.