Приветствуем гуру 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 – это файл, который имеет значение.
Как я могу исправить эту проблему? Что мне не хватает?
Был бы благодарен за помощь от знающего человека.
Если часовой пояс установлен правильно в соответствующем файле 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'
Приведенная выше команда нуждалась в некоторой утонченности в моем случае. Это также создаст файлы резервных копий.