gpt4 book ai didi

php - 将 Symfony 3.2 项目部署到 Strato

转载 作者:行者123 更新时间:2023-11-29 19:05:32 31 4
gpt4 key购买 nike

我开发了一个 Symfony 项目(版本 3.2),其中包含数据库(mysql)中的一些数据。开发是使用本地计算机和 XAMPP 完成的。到目前为止一切都很好。

现在是棘手的部分:部署。我阅读了所有文档。有两种选择:

  • 上传相关源代码,迁移数据库并通过在服务器上的 prod 中运行 Composer 脚本来配置项目
  • 在prod环境下通过composer进行配置,上传,迁移数据库。

(唯一的区别在于运行脚本的位置。)

问题:对于 Strato,这两个选项都不起作用:

对于选项 1:我无法在服务器上运行脚本,即使在“之前使用“set SYMFONY_ENV=prod”(导出命令不存在),我也会遇到找不到类的异常phpcomposer.phar安装--no-dev--optimize-autoloader”。

错误:

PHP Fatal error: Class 'Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle' not found

对于选项 2:其他计算机无法访问 Stratos rdbms.strato.de 数据库服务器。

错误:

The test of the connection fails. The scripts are not finishing.

我已经在这里搜索过,但没有找到任何东西。有谁知道解决办法吗?

最佳答案

您确定无法执行 export命令?这是一些共享托管限制还是......?

如果您确实无法使用该命令,在我看来,一种解决方法可能是从 AppKernel.php 中删除不属于生产环境的 bundle 。 (在 Strato 上的应用程序中)

这部分代码如下所示:

// AppKernel.php
if (in_array($this->getEnvironment(), ['dev'], true)) {
$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
$bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();

}

此外,您需要删除 config_dev.yml 中的所有内容除外:

imports:
- { resource: config.yml }

有关 Composer 和 symfony 环境差异的更多信息,您可以在此处阅读: How does composer know symfony environment另外,一年前我写了一篇关于在共享主机上部署 Symfony 的文章,也许它可以在未来的某个时候帮助你:)) http://matkodjipalo.com/index.php/2016/05/19/installing-symfony-on-hostgator-shared-hosting/

关于php - 将 Symfony 3.2 项目部署到 Strato,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43546770/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com