Program Tip

symfony2- "dev"에서 "prod"로 전환하는 방법은 무엇입니까?

programtip 2020. 12. 27. 19:56
반응형

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

반응형