我试图通过www.example.com法语服务部署我的应用程序(Symfony 6和php 8)。Gandi.net
执行脚本缓存:清除[KO]
[KO]
脚本缓存:清除返回错误代码255
!! Symfony\Component\ErrorHandler\Error\ClassNotFoundError {#75
!!#message:"""
!!尝试从命名空间"Symfony\Bundle\DebugBundle"加载类"DebugBundle"。\n
!!是否忘记了另一个名称空间的"use"语句?
!!""
!!#代码:0
!!#file:"./vendor/symfony/framework-bundle/Kernel/MicroKernelTrait.php"
!!#line:131
!! trace:{
!!./vendor/symfony/framework-bundle/Kernel/MicroKernelTrait. php:131 {...}
!!./vendor/symfony/http-kernel/Kernel. php:382 {...}
!!./vendor/symfony/http-kernel/Kernel. php:768 {...}
!!./vendor/symfony/http-kernel/Kernel. php:128 {...}
!!./vendor/symfony/framework-bundle/Console/Application. php:166 {...}
!!./vendor/symfony/framework-bundle/Console/Application. php:72 {...}
!!./vendor/symfony/console/Application. php:171 {...}
!!./vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner. php:54 {...}
!!./vendor/autoload_runtime. php:29 {...}
/bin/console:11 {
!! ›
!! › require_once dirname(DIR).'/vendor/autoload_runtime.php';
!! ›
!!参数:{
"/tmp/build.14jKbmPhHD/vendor/autoload_runtime.php "
我的意思是
我的意思是
我的意思是
我的意思是
!! 2022 - 03 - 11T15:10:40 + 00:00 [critical] Uncaught Error:未找到类"Symfony\Bundle\DebugBundle\DebugBundle"
!!
通过post-install-cmd调用了Script@auto-scripts
生成新应用程序失败
正在中止部署
这是提到DebugBundle的两个文件。
- Composer.lock
"autoload":{"psr-4 ":{
"Symfony\Bundle\Bundle":""
},
"exclude-from-classmap":["/测试/"
]
},
- Bundles.php
'all '=> true],Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class =>'all'=> true],Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class =>['all '=> true],Symfony\Bundle\DebugBundle\DebugBundle::class =>['dev'=> true],Symfony\Bundle\TwigBundle\TwigBundle::class =>['all '=> true],Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class =>['dev'=> true,'test'=> true],Symfony\WebpackEncoreBundle\WebpackEncoreBundle::class =>['all '=> true],Twig\Extra\TwigExtraBundle\TwigExtraBundle::class =>['all'=> true],Symfony\Bundle\SecurityBundle\SecurityBundle::class =>['all'=> true],Symfony\Bundle\MonologBundle\MonologBundle::class =>['all'=> true],Symfony\Bundle\MakerBundle\MakerBundle::class =>['dev'=> true],Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class =>['all'=> true],];
这个错误假设我忘记了一个“use”,但是我从来没有示例化DebugBundle,所以我从来没有为他写过一个use。我尝试运行composer require symfony/debug-bundle并进行composer更新,但没有任何变化。
我已经尝试通过更改来更改composer. lock的内容:
"autoload": {
"psr-4": {
"Symfony\\Bundle\\DebugBundle\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
到
"autoload": {
"psr-4": {
"Symfony\\Bundle\\DebugBundle\\": “App\src”
},
"exclude-from-classmap": [
"/Tests/"
]
},
但是当编写器安装或更新运行时,“应用程序/src”被删除,文件返回到原始值。我快想不出办法了,希望你们能帮我。
祝你今天愉快.
艾默里克
terminal
Bundles.php
composer.lock
2条答案
按热度按时间sy5wg1nm1#
我得到了同样的错误,我认为正在发生的是composer命令正在安装“prod”需求,这意味着它将正确地跳过“require-dev”中提到的那些捆绑包,因为这些捆绑包仅用于开发。
然而,运行时中一定有一些代码没有检查它运行在哪个环境中,或者当内核加载时仍然试图加载 * 所有 * bundle的错误配置,(或者它不知道APP_ENV=prod),因此 * 仍然 * 试图加载调试包(和其他开发包),即使这些包不是由composer安装的。
您会注意到这些包在bundles.php中具有dev => true。您会注意到,通过逐个删除这些错误,错误将转移到下一个具有dev => true的错误。
我已经确保在运行任何composer命令之前设置了我的env变量,所以不可能是这样。
当SHH‘艾德进入我的服务器时,我可以进入我的项目的“bin”目录,并在那里运行“php控制台关于”。它似乎认为它是一个开发环境,即使它的部署脚本应该设置APP_ENVvar。
php console about
Symfony
版本6.0.8
长期支持否
维护结束01/2023(+269天)
寿命终止日期01/2023(+269天)
内核
类型App\Kernel
环境发展
Debug true
字符集UTF-8
缓存目录./var/cache/dev(1.7 MiB)
构建目录./var/cache/dev(1.7 MiB)
日志目录./var/log(0 B)
PHP
版本8.1.5
架构64位
国际语言环境en_US_POSIX
时区欧洲/布鲁塞尔(2022-05- 07 T16:18:34+02:00)
OPcache true
APCu true
Xdebug false
因此,我假设系统不记得“export APP_ENV=prod”和“export APP_DEBUG=0”。
因此,我在系统上手动运行“composer dump-env prod”,生成一个包含APP_ENV和APP_DEBUG行的.env.local.php,现在这些都得到了尊重,网站似乎加载了(直到修复我的数据)。
3xiyfsfu2#
读这个article,它为我与symfony 6工作
上下文:
symfony/profiler-pack和他的依赖项“wig\Bundle”被加载为“require-dev”:{“symfony/profiler-pack”:“^1.0”}并且无法安装在上下文“prod”上
解决方案:
如果你想在其他上下文中使用“Twig\Bundle”,你应该单独加载:
composer require symfony/twig-bundle
.现在TwigBundle在“require”和symfony/profiler-pack在“require-dev”