簡體   English   中英

是否可以在沒有命令行的情況下在服務器上運行symfony 4應用程序?

[英]Is it possible to run symfony 4 application on server without command line?

我檢查了https://symfony.com/doc/current/deployment.html#common-post-deployment-tasks

無需手動執行命令行,而是手動完成。 例如-供應商文件只是從我的本地計算機復制的,使用靜止的.env文件手動清除了緩存,因為無法設置環境變量。

第一次加載頁面,但在下次加載時出現錯誤

嘗試從名稱空間“ Symfony \\ Component \\ DependencyInjection \\ Config”中加載類“ 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)

更新:

通過評論,我仍然不確定該怎么做。 這是評論中的鏈接: 如何在不通過SSH和CLI訪問生產的情況下部署symfony項目

設置parameters.yml

看不到這樣的文件。

環境變量-我認為它們在$ parameter-> resolve()期間復制到緩存中

我認為沒有命令行就無法設置它們。

cache:clean --env產品

在ftp中手動刪除緩存文件夾的內容。

刪除日志

真的有關系嗎?

資產:安裝--env產品

我不認為我會使用它們。

我只是將權限設置為var文件夾上的777,以防由於它們而出現問題。 它不是生產服務器,因此不必太在意安全性,只需要運行一個演示即可。

您需要使用生產設置在本地主機上完全正常的構建,然后將其上載。 您知道特定項目在本地工作的所有步驟。 因此,將您的項目克隆到用於生產設置的新文件夾中,然后執行所有步驟。 完成后,將所有內容上傳到服務器並修復keys文件夾的權限。

注意:parameters.yml是您在其中設置symfony參數的文件,例如:

  • 數據庫服務器地址
  • 數據庫名稱
  • 數據庫用戶名
  • 數據庫密碼
  • SMTP服務器
  • smtp用戶名
  • SMTP地址

但在symfony 4中,它已被環境變量所取代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM