我检查了https://symfony.com/doc/current/deployment.html#common-post-deployment-tasks
而不是我需要用命令行做什么,我已经手动完成了。例如 - 刚从本地计算机复制的供应商文件,使用静态.env文件手动清除缓存,因为无法设置环境变量。
第一次加载页面,但在下次加载时我收到错误
尝试从命名空间“Symfony \ Component \ DependencyInjection \ Config”加载类“ContainerParametersResourceChecker”。您是否忘记了另一个命名空间的“use”语句?
我认为在清除缓存之前有同样的错误。当然我们无法清除每个页面加载的缓存。
是不是可以永久修复它,或者它是 - 如何?
堆栈跟踪:
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
看不到这样的文件。
环境变量 - 我认为它们在$ parameter-> resolve()期间被复制到缓存中
我不认为我可以在没有命令行的情况下设置它们。
缓存:清理--env prod
在ftp中手动删除缓存文件夹内容。
删除日志
真的有关系吗?
资产:安装--env prod
我不认为我使用它们。
我只是在var文件夹上设置了777的权限,以防因为它们出错。它不是一个生产服务器,所以不关心安全性,只需要运行一个演示。
您需要使用生产设置在localhost上进行完全可用的构建,然后上载它。您知道您的特定项目在本地工作的所有步骤。因此,将项目克隆到生产设置的新文件夹中,然后执行所有步骤。完成后,将所有内容上传到服务器并修复密钥文件夹的权限。
注意:parameters.yml是您设置symfony参数的文件,如:
但在symfony 4中,它已被环境变量取代。