2017-04-21 51 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