Symfony4: доступ к среде DEV на рабочем сервере - PullRequest
0 голосов
/ 01 июня 2018

В Symfony3, когда я хочу просмотреть веб-сайт в среде DEV на «живом» сервере, я просто ввожу свой IP-адрес в /web/app_dev.php и открываю http://www.example.com/app_dev.php/ в браузере.

Так как вSymfony4, среда теперь установлена ​​в /.env, как я могу увидеть среду DEV на рабочем компьютере?

РЕДАКТИРОВАТЬ: Я ищу решение, которое работает в производстве ,поэтому применение любых глобальных изменений (например, установка APP_ENV=dev в /.env) не вариант.

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Сначала это плохая идея, и поэтому по умолчанию не может получить доступ к app_dev.php на рабочем сервере (symfony <4).Вы даете много внутренней информации общественности и особенно злоумышленникам.</p>

Из документов symfony :

После развертывания в рабочей среде убедитесь, что у вас нет доступа к сценариям app_dev.php или config.php (т. Е. http://example.com/app_dev.php и http://example.com/config.php). Если вы можете получить к ним доступ, обязательно удалите раздел DEV из вышеуказанной конфигурации.

Вы сможете отладить большинство вещей из журналов.

Но если вы действительно хотите это сделать, вы можете просто удалить public/index.php и создать public/app.php и public/app_dev.php, как это было в Symfony 3, и заставить его работать с переменными env. - https://github.com/symfony/symfony-standard/tree/3.4/web

РЕДАКТИРОВАТЬ: Для ясности: вы можете просто удалить public/index.php, создать public/app.php, public/app_dev.php (копии index.php). И получить вдохновение из стандартной редакции Symfony 3, чтобы приспособить ее к вашим потребностям.

EDIT2: Как упомянул @Cerad, лучше иметь имена файлов index.php и index_dev.php (следуя решениям Symfony4).

0 голосов
/ 01 июня 2018

Вы можете изменить внутри вашего .env файла APP_ENV на dev следующим образом:

APP_ENV=dev

Если вы установите эту переменную, Symfony загрузит систему в среду разработки, потому что внутри Kernel.php есть эта строкакоторая проверяет эту переменную:

$kernel = new Kernel($_SERVER['APP_ENV'] ?? 'dev', $_SERVER['APP_DEBUG'] ?? false);

Если вы хотите сделать это без изменения .env-файла, вы можете, например, установить переменную в конфигурации Apache vhost или Nginx FastCgi, основываясь на URL, который вы посещаете -например, APP_ENV=/home/user/app-name/dev.env или на работающем сервере: APP_ENV=/etc/app-name.prod.env

Так что в этом случае у вас есть много файлов .env, но вы можете использовать правило, основанное на url

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...