Я использую глобальную команду Symfony, чтобы создать проект под моим ~/tmp/
каталог, и связал его с моим /Application/MAMP/htdoc/
Корень сервера Apache.
Сюрприз, проект был в режиме prod. Я знаю это, потому что отсутствует инструмент отладки подчеркивания, известный как «профилировщик», и все мои ошибки не были видны, и когда я ищу в app/logs/dev.log
, файл тоже отсутствует, но есть app/logs/prod.log
,
Если я бегу app/console server:run
проект находится в режиме разработки.
Как это возможно? Может быть, все программное обеспечение, установленное MAMP?
open_ssl, mod_fastcgi, mod_perl, mod_ssl, mod_wsgi?
Я обычно использую только встроенный сервер PHP для запуска проекта и никогда раньше не устанавливал режим prod.
Я не рекомендую вам менять значение второго аргумента AppKernel
в web/app.php
,
Вместо этого я рекомендую вам настроить в локальной настройке MAMP для использования app_dev.php
в качестве файла индекса PHP, который является то, что server:run
команда тоже.
Это связано с .htaccess
проекта web
каталог.
Когда вы просматриваете приложение Symfony через Apache, вы по умолчанию находитесь в производственной среде, независимо от используемой ОС.
Чтобы перейти в режим разработки, откройте файл web/app.php
найдите следующую строку:
$kernel = new AppKernel('prod', false); // Prod env, debug disabled
И измените его на:
$kernel = new AppKernel('dev', true); // Dev env, debug enabled
Это быстрее, чем я знаю.
В противном случае я сделал переопределение по умолчанию .htaccess
адаптирован для среды разработки.
Переписать URL-адреса на app_dev.php
фронт-контроллер, а не app.php
,
Обновить
Вам необходимо добавить следующее в вашу конфигурацию apache:
<Directory "path/to/your/project">
DirectoryIndex app_dev.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app_dev.php [QSA,L]
</IfModule>
</Directory>
Вы должны создать ВХост чтобы сделать эту конфигурацию специфичной для вашего проекта, а не для всего вашего локального хоста.