2017-04-21 93 views
0

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

现在出现棘手的部分:部署。我阅读所有文档。有两个选项:

  • 上传的有关人士介绍,迁移数据库,并通过在PROD环境,通过上传作曲家服务器
  • 配置督促运行作曲家脚本配置项目,迁移数据库。

(唯一的区别是你运行的脚本。)

问题:与灵云两个选项都无法正常工作:

对于选项1:我不能运行脚本在服务器上,即使在“php composer.phar install --no-dev --optimize-autoloader”之前设置了“set SYMFONY_ENV = prod”(导出命令不存在),我也得到了一个类未找到的异常。

错误:

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

选项2:斯特拉托斯rdbms.strato.de数据库服务器是无法从其他机器访问。

错误:

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

我已经搜查这里,但我没能发现任何东西。有谁知道解决方案?

+0

如果认为你回答你自己这个问题。在共享主机上运行symfony网站并不是一个好主意。 – COil

+0

这是对的,我已经很后悔了。但更重要的是找到一些解决方法。 – MutterOberin

回答

0

您确定不能执行export命令吗? 这是一些共享主机限制或...?

如果你真的不能使用该命令,在我看来是一个解决办法可能是删除不从AppKernel.php属于生产环境束(在您的应用程序上灵云)

这部分代码看起来像这样的:

// 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 } 

更多约作曲家和symfony的环境的差异,你可以在这里阅读: How does composer know symfony environment 另外,年前,我写了一篇关于在共享主机部署Symfony的一个帖子,也许它可以帮助你在未来的一段时间:)) http://matkodjipalo.com/index.php/2016/05/19/installing-symfony-on-hostgator-shared-hosting/

+0

感谢您的评论!我尽我所能去尝试。我决定切换到Strato V服务器,现在它正在工作。 – MutterOberin