Как использовать среды разработки и prod symfony

#php #apache #symfony

#php #apache #symfony

Вопрос:

Это может показаться глупым вопросом, мне нужно, чтобы мое приложение symfony 3 в рабочей среде вело себя иначе, чем на моем локальном компьютере. Я знаю, что для каждой среды есть точка входа, app.php и app_dev.php

Я не хочу изменять файл веб-приложения /.htaccess, потому что за ним следует git, я ожидал, что в app / config.yml будет ‘env’ var или что-то подобное, но есть также config.yml и config_dev.yml, так что это должно быть другое место, где я могу определить, работаю ли я с prod или dev env.

В документации говорится, что мне нужно настроить мой сервер apache на использование либо web/app.php или web/app_dev.php и это мой вопрос. Я использую apache 2.4 и попытался использовать следующую директиву:

 <VirtualHost *:8000>
    <directory>
        ...
        DirectoryIndex app_dev.php
    </directory>
</VirtualHost>
  

Я перезапустил apache, но когда я набираю localhost:8000 в своем браузере, он продолжает использовать значение по умолчанию app.php Мне нужен мой сервер apache для использования app_dev.php Я не хочу использовать встроенный сервер, потому что через некоторое время он начинает глючить.

Кто-нибудь, пожалуйста, может помочь мне с конфигурацией apache для использования среды разработки?

Ответ №1:

Я думаю, у вас следующие проблемы: независимо от того, что DirectoryIndex вы определяете, сервер также получает некоторые настройки из .htaccess . Возможно ли, что у вас есть другая ссылка на app.php там, например RewriteRule ^(.*)$ app.php [QSA,L] ?

Затем вы могли бы сделать следующее: переместить этот точный параметр из .htaccess в конфигурацию вашего сервера, как локально, так и на рабочем сервере. Затем вы можете сохранить все остальные настройки независимыми от вашей среды.

Если это пока не помогло, пожалуйста, поделитесь содержанием .htaccess .

Другим способом решения проблемы могло бы быть использование последней версии Symfony и помещение всего, что может измениться в разных средах, в .env файл. Не ставьте его под контроль версий, так как этот файл может содержать конфиденциальную информацию. Тогда взгляните на текущие основы: у вас больше нет app.php и app_dev.php , поскольку изменения были незначительными. Используется общий index.php , и он считывает все текущие настройки из .env

Комментарии:

1. Спасибо! Я скопировал конфигурацию symfonyapp /web /.htaccess на свой site.conf в /etc/apache2/sites-availables /, также изменив ‘app.php ‘to’app_dev.php ‘ и теперь это работает в среде разработки