会发生什么,我有一个SYMFONY 2.8生产系统,它从我的软件包接收更新" BUNDLES"通过"拉"自动。由于某种原因,服务器错误500,抱怨缓存代码。
我不缓存apache而不使用另一个缓存系统,PHP 6.5.24使用这个linux服务器。
这是服务器收到更新时发生的错误示例。
[Wed Aug 24 17:05:11.638885 2016] [:error] [pid 11055] [client 64.16.214.100:30866] PHP Fatal error:
Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException' with message 'Circular reference detected for service "service_name", path:
"service_name".' in /home/my_system/app/bootstrap.php.cache:2191\nStack trace:\n#0 /tmp/my_system/prod/cache/classes.php(2460):
Symfony\Component\DependencyInjection\Container->get('service_name')\n#1 /tmp/my_system/prod/cache/classes.php(2428):
Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->lazyLoad('kernel.exceptio...')\n#2 /tmp/my_system/prod/cache/classes.php(2275):
Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->getListeners('kernel.exceptio...')\n#3 /home/my_system/app/bootstrap.php.cache(3265):
Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.exceptio...', Object(Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent))\n#4 /home/my_system/app/bootstrap.php.cache(3213):
Symfony\Component\HttpKernel\HttpKernel->handleException(Object(Symfony\Component\Debug\Exc in /home/my_system/app/bootstrap.php.cache on line 2191
如何解决问题?我重新启动Apache服务。现在我想在你的帮助下理解并解决它,因为我在这个过程中可能做错了。
每次发送更新时都运行以下命令:
composer install --no-dev --optimize-autoloader
php app/console cache:clear --env=prod --no-debug
php app/console assets:install --symlink --env=prod --no-debug
但仍然无法解决问题,正如我之前所说,只有重新启动apache服务才能解决。
谢谢大家
答案 0 :(得分:0)
对我来说似乎不是缓存问题,而是依赖冲突。
例如,如果服务Aservice依赖于Bservice,则依赖于Cservice。而Cservice依赖于Aservice。 在这种情况下,出现无法解决的循环依赖。
在我的情况下,我遇到了Doctrine事件监听器的这个问题。如果你有一个类似的依赖圈子,请查看你的代码。