MAMP / Symfony: MAMP переопределяет параметр date.timezone от php.ini, Symfony не работает

Я пытаюсь настроить структуру Symfony2 в MAMP.

В php.ini я правильно установил date.timezone , однако, похоже, что MAMP каким-то образом переопределяет настройку и вместо этого использует системное время.

В результате страница config.php Symphony отправляет это предупреждение:

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

Symfony не показывает стартовую страницу, пока это не будет исправлено. Каким будет решение?

Спасибо!

Проверьте, есть ли в вашей системе два файла php.ini . Вы можете добавить строку date.timezone в одну из них, но MAMP использует другую.

Если это не работает, попробуйте добавить следующую строку в начале ваших файлов web/app.php и web/app_dev.php (как следует из сообщения об ошибке):

 date_default_timezone_get('Europe/London'); 

Надеюсь, поможет.

Я все еще работаю над выяснением, почему и как MAMP переопределяет настройки php.ini date.timezone, однако я нашел решение быстрого исправления в файлах php Symfony, которые решили проблему, по крайней мере, на данный момент.

Я добавил следующий бит кода:

 date_default_timezone_set ('America/New_York'); 

– в верхней части файлов config.php и app_dev.php Symfony, сразу после открытия php-тега, находится на самой вершине скрипта. Это удалило предупреждающее сообщение и заставил Symfony работать над MAMP.

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

Тем не менее, это приемлемое решение.

  • копия

cp /etc/php.ini.default /etc/php.ini

  • изменять разрешения

chmod -R 775 /etc/php.ini

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

sudo vi /etc/php.ini

  • найдите date.timezone и date.timezone и измените его на (пример):

date.timezone = "Europe/London"

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

Чтобы узнать, какой из ваших php.ini из командной строки вы можете сделать:

 $ php -i | grep 'Configuration File' 

(ссылка: как найти файл php.ini, используемый командной строкой? )

Попробуйте установить «date.timezone» в «/etc/php.ini» или везде, где он говорит, это ваш файл php.ini.

Вы также можете изменить файл php.ini:

 $ php -help | grep "php.ini" -c <path>|<file> Look for php.ini file in this directory 

Подобно…

 $ php -c /Applications/MAMP/conf/php5.5.14/php.ini ... 

Например:

 $ php -c /Applications/MAMP/conf/php5.5.14/php.ini -i | grep 'Configuration File' 

Если ваша проблема заключается в том, как внести изменения в файл php.ini на MAMP PRO, попробуйте отредактировать шаблон.

Файл -> Изменить шаблон

Вы можете увидеть в руководстве MAMP, стр. 24

Больше информации здесь

В MAMP 3.0.1 файл php.ini в соответствующей версии папок php, который вы используете, имеет значение date.timezone, объявленное после точки с запятой, которая превращает его в комментарий, а не в команду. В php.ini в C: \ MAMP \ conf \ php5.5.12 (или ваша версия php) удалите точку с запятой в строке 703 и определите свое местное время в соответствии с рекомендациями http://php.net/manual/en/timezones. php .

Надеюсь, что это работает для вас 🙂

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

Не забудьте перезапустить apache mac:

 sudo /usr/sbin/apachectl restart 

Это решение работало для меня:

 [OK] Your system is ready to run Symfony2 projects