2017-12-26 17 views
0

나는 체크했다 https://symfony.com/doc/current/deployment.html#common-post-deployment-tasks심포니 4 응용 프로그램을 명령 줄없이 서버에서 실행할 수 있습니까?

대신 커맨드 라인으로해야 할 일은 수동으로했다. 예를 들어 - 내 로컬 컴퓨터에서 복사 한 공급 업체 파일, 환경 변수를 설정할 수 없기 때문에 여전히 .env 파일을 사용하여 캐시를 수동으로 지 웁니다.

처음의 그 페이지가로드,하지만 다음로드에 나는 오류

네임 스페이스 "심포니 \ 구성 요소 \ 의존성 주입 \ 구성"에서 클래스 "ContainerParametersResourceChecker"를로드하려고

을 얻었다. 너 다른 네임 스페이스에 "사용"문을 잊어 버렸습니까?

캐시를 지우기 전에 같은 오류가 있다고 생각합니다. 물론 각 페이지로드시 캐시를 지울 수 없습니다.

영구적으로 수정할 수 없습니까?

스택 트레이스 :

Symfony\Component\Debug\Exception\ClassNotFoundException: 
Attempted to load class "ContainerParametersResourceChecker" from namespace "Symfony\Component\DependencyInjection\Config". 
Did you forget a "use" statement for another namespace? 

    at var/cache/dev/ContainerWz8cB8L/srcDevDebugProjectContainer.php:357 
    at ContainerWz8cB8L\srcDevDebugProjectContainer->ContainerWz8cB8L\{closure}() 
    (vendor/symfony/config/ResourceCheckerConfigCache.php:95) 
    at Symfony\Component\Config\ResourceCheckerConfigCache->isFresh() 
    (vendor/symfony/config/ResourceCheckerConfigCacheFactory.php:42) 
    at Symfony\Component\Config\ResourceCheckerConfigCacheFactory->cache('/home/dari/domains/dari.us.lt/public_html/symfony_4_persons_demo/var/cache/dev/srcDevDebugProjectContainerUrlMatcher.php', object(Closure)) 
    (vendor/symfony/routing/Router.php:302) 
    at Symfony\Component\Routing\Router->getMatcher() 
    (vendor/symfony/routing/Router.php:256) 
    at Symfony\Component\Routing\Router->matchRequest(object(Request)) 
    (vendor/symfony/http-kernel/EventListener/RouterListener.php:109) 
    at Symfony\Component\HttpKernel\EventListener\RouterListener->onKernelRequest(object(GetResponseEvent), 'kernel.request', object(EventDispatcher)) 
    (vendor/symfony/event-dispatcher/EventDispatcher.php:212) 
    at Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(array(array(object(DebugHandlersListener), 'configure'), array(object(ValidateRequestListener), 'onKernelRequest'), array(object(SessionListener), 'onKernelRequest'), array(object(RouterListener), 'onKernelRequest'), array(object(ResolveControllerNameSubscriber), 'onKernelRequest'), array(object(LocaleListener), 'onKernelRequest'), array(object(TranslatorListener), 'onKernelRequest'), array(object(TraceableFirewallListener), 'onKernelRequest')), 'kernel.request', object(GetResponseEvent)) 
    (vendor/symfony/event-dispatcher/EventDispatcher.php:44) 
    at Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.request', object(GetResponseEvent)) 
    (vendor/symfony/http-kernel/HttpKernel.php:127) 
    at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1) 
    (vendor/symfony/http-kernel/HttpKernel.php:66) 
    at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true) 
    (vendor/symfony/http-kernel/Kernel.php:190) 
    at Symfony\Component\HttpKernel\Kernel->handle(object(Request)) 
    (public/index.php:34) 

업데이트 : 주석으로

나는 아직도 무엇을 제출해야 할 지 모르겠습니다. How to deploy a symfony project without SSH and CLI access to production

설정 parameters.yml

같은 파일을 참조하지 마십시오 여기에 코멘트에 링크했다.

는 Environtment는 바르 - 나는 그들이 $ 파라미터 유효> 해결() 내가 명령 줄없이 설정할 수 있다고 생각하지 않습니다

동안 캐시에 복사됩니다 생각합니다.

캐시 :

삭제 캐시 폴더의 내용을 수동으로 FTP 깨끗한 --env 자극.

로그

정말 중요합니까

을 삭제 하시겠습니까?

자산 : 설치 --env 자극

나는 내가 그들을 사용 생각하지 않습니다.

var 폴더 때문에 권한이 777로 설정 되었기 때문에 그 중 일부가 잘못되어 권한이 있습니다. 프로덕션 서버가 아니기 때문에 보안에 신경을 쓰지 않고 데모를 실행하면됩니다.

+0

확인 : https://stackoverflow.com/questions/47943031/how-to-deploy-a-symfony-project-without-ssh-and-cli-access-to-production/47943527#47943527 – albert

답변

0

프로덕션 설정을 사용하여 로컬 호스트에서 완전히 작동하는 빌드를 만든 다음 업로드해야합니다.특정 프로젝트가 로컬에서 작업하기위한 모든 단계가 무엇인지 알 것입니다. 따라서 프로덕션 설치를 위해 새 폴더에 프로젝트를 복제하고 모든 단계를 수행하십시오. 끝나면 모든 것을 서버에 업로드하고 키 폴더의 사용 권한을 수정하십시오.

참고 :

  • 데이터베이스 서버 주소
  • 데이터베이스 이름
  • 데이터베이스 사용자 이름
  • 데이터베이스 암호
  • SMTP 서버 : parameters.yml 당신처럼 심포니 매개 변수를 설정하는 파일입니다
  • smtp 사용자 이름
  • smtp 주소

하지만 symfony 4에서는 environtment vars로 바뀌 었습니다.

+0

나는 생산을 설정하지 않았다는 것을 제외하고는 이것을했지만 dev 환경에서와 같이 작동해야합니까? 그리고 어떤 권한을 설정해야할지 모르겠습니다. 그리고 나는이 오류 메시지를 기반으로 권한 문제가 발생합니다. –

+0

WORST ADVICE EVER : 어떤 사용자가 apache/php-fpm을 사용하여 실행하고 모든 사용자의 소유자를 해당 사용자로 변경했는지 확인하십시오. var/recursively의 모든 파일과 폴더를 777로 변경하십시오. 데모 만있는 것 같아요? :) – albert

+0

명령 줄없이 아파치를 실행하는 사용자를 어떻게 찾습니까? 내가 php 파일에 shell_exec을 추가하면 500 오류가 발생합니다. 예, 데모 용입니다. –