symfony2- "dev"에서 "prod"로 전환하는 방법은 무엇입니까?
symfony2를 다운로드했고 app_dev.php에서 시작할 수 있습니다.
하지만 app.php에서 시작하면 오류 페이지 404가 표시됩니다.
app.php는 물론 거기에 있으며 실행됩니다.
이 오류는 app.php의 마지막 코드 줄 뒤에서 분명히 발생합니다.
$kernel->handle(Request::createFromGlobals())->send();
어딘가에 구성해야하는 스위치가있는 것 같습니다.
편집 :
GeLo에서 제안한대로 프로덕션 버전의 라우팅을 app / config / routing.yml에 추가했습니다.
_welcome:
resource: "@AcmeDemoBundle/Resources/config/routing.yml"
prefix: /
콘텐츠로 src / Acme / DemoBundle / Resources / config / routing.yml을 만들었습니다.
bla:
pattern: /
defaults: {_controller:AcmeDemoBundle:Demo:index}
에서 DemoController::indexAction()
나는 배치 die(__FILE__)
;
아무것도; 나는 여전히 app.php에서 404를 얻습니다!?
답변에 대한 수정 :
./app/console --env=prod cache:clear
트릭을했다. env 매개 변수를 염두에 두십시오.
기본적으로 Symfony 2는 개발 환경에서 액세스 할 수있는 데모 번들과 함께 제공됩니다.
프로덕션 환경에는 경로가 포함되어 있지 않으므로 404 오류 페이지가 표시되는 것은 정상입니다.
편집하다 :
번들이 AppKernel.php에서 활성화되어 있습니까?
그렇다면 다음 명령을 사용하여 캐시를 지 웁니다. ./app/console cache:clear
다음 명령으로 경로가 활성화되었는지 확인하십시오. ./app/console router:debug
대신 소유자를 변경하십시오.
sudo chown www-data:www-data -R app/cache
sudo chown www-data:www-data -R app/logs
브라우저가 폴더를 소유하도록합니다. 구문은 다음과 같습니다.
chown <USER>:<GROUP> <SWITCH> <DIRECTORY>
요즘 새로운 Symfony2 설치와 함께 직면했기 때문에 이러한 종류의 문제에 대한 몇 가지 팁을 통합하고 싶었습니다.
새로 설치하면 일반적으로 / src / AppBundle 아래에 AppBundle이 있고 / src / Acme / DemoBundle 아래에 AcmeDemoBundle이 있습니다.
app_dev에서 AcmeDemoBundle을 실행하고 그 동안 app.php에 응용 프로그램 (즉, AppBundle이 새로 설치됨)을 갖고 싶다면 (404는 피하십시오) 다음과 같이 할 수도 있습니다.
에서 /app/config/routing_dev.yml 코멘트 다음 행 (당신이 그들을 경우) :
_main:
resource: routing.yml
에 /app/config/routing.yml은 (당신이없는 경우) 새로운 경로를 추가
index:
pattern: /
defaults: { _controller: AppBundle:Default:index }
그런 다음 다른 사람들이 이미 조언 한 것처럼 캐시를 비우고 응용 프로그램을 테스트하십시오.
1) http : // your_application_path / web /
2) http : // your_application_path / web / app_dev.php
첫 번째 페이지에서 모든 것이 정상이면 "Homepage"라는 문자열이있는 흰색 페이지가 표시됩니다. (이 항목을 편집하려면 /app/Resources/views/default/index.html.twig ...이 레이아웃의 레이아웃은 base.html.twig입니다) 두 번째 항목에서는 Symfony2에서 제공하는 DemoBundle을 가져와야합니다.
도움이 되었기를 바랍니다.
웹 서버 계정 (예 : 'master-chef'가 / Symfony2 / app / cache / prod 디렉터리를 소유하도록 함)으로 수정했습니다. 명령은 다음과 같습니다.
$sudo chown master-chef -R /var/www/Symfony2/app/cache/prod
In your "web/app.php" file
$kernel = new AppKernel('prod', false);
Change the value to "true".
$kernel = new AppKernel('prod', true);
Now you can load the application in production mode.
Your problem is related to the cache of Symfony2. I had the same problems. Try this:
sudo php app/console cache:clear --env=prod --no-debug
sudo chmod 777 -R ../sf2/
(sf2) is the main directory of my proyect
You're done.
ReferenceURL : https://stackoverflow.com/questions/6789950/symfony2-how-to-switch-from-dev-to-prod
'Program Tip' 카테고리의 다른 글
오른쪽 하단 div 주위에 텍스트를 줄 바꿈하려면 어떻게해야합니까? (0) | 2020.12.27 |
---|---|
"데스크탑 Safari"와의 알려진 "iPad의 Safari"차이점 목록 (0) | 2020.12.27 |
캐시 라인 크기에 언제 어떻게 정렬해야합니까? (0) | 2020.12.27 |
Android에서 Docker 실행 (0) | 2020.12.27 |
Firefox Extension에서 jQuery를 사용하는 방법 (0) | 2020.12.27 |