如何解决为什么我已部署的Symfony应用程序无法加载bundles.php文件?
我有一个Symfony Web应用程序。我想将其部署到虚拟专用服务器上。
我已经在Laravel Homestead Vagrant box中开发了该应用程序,并且正在通过Github操作进行部署。
在我的本地计算机上,该应用程序在Vagrant环境中运行良好,但是将文件同步到实时服务器后,它给了我一个错误屏幕。
警告:require(/var/www/thebedechkacase.com/src/config/bundles.PHP): 打开流失败:没有这样的文件或目录
const CONfig_EXTS = '.{PHP,xml,yaml,yml}';
public function registerBundles()
{
$contents = require $this->getProjectDir().'/config/bundles.PHP';
foreach ($contents as $class => $envs) {
if ($envs[$this->environment] ?? $envs['all'] ?? false) {
yield new $class();
}
}
我不明白的是,根据错误消息和上面的代码,$this->getProjectDir()
的输出解析为/var/www/thebedechkacase.com/src/
(thebedechkacase.com
是我的应用程序代码所在的文件夹存储),但bundles.PHP
实际上位于/var/www/thebedechkacase.com/config/
中。
Symfony为什么认为projectDir
在src
中,为什么它不在根目录(又名config
)中寻找thebedechkacase.com/
?为什么这在我的开发环境中有效,但在实时服务器上却不起作用?
其他信息::我正在尝试使用我在Github操作中调用的shell脚本来设置必要的环境变量,但是当我在实时服务器上手动检查环境变量时外壳程序,我没有看到它们被设置,因此我的脚本可能首先被破坏了(这就是为什么您可以看到默认的Symfony错误页面的原因)。可能与此有关或这是另一个错误吗?
您可以在其中看到错误的网址: https://thebedechkacase.com/
该项目的Github存储库: https://github.com/Cooty/the-bedechka-case
部署代码的操作: https://github.com/Cooty/the-bedechka-case/blob/develop/.github/workflows/main.yml
Symfony版本: 5.0
实时服务器正在运行Ubuntu 20.04,带有PHP-FPM 7.4和PHP 7.4的Ngingx。
解决方法
Cared-带我去解决方案,我从rsync命令的文件列表中排除了composer.json,我认为只需要安装依赖项就可以了,但Symfony并不需要在运行时从中读取信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。