Я пытаюсь настроить структуру 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