2011-11-21 79 views
14

我有一個開發的Symfony 2和學說2.小型web應用程序的Symfony 2,不使用SSH訪問

我可以將其部署到網絡的主機不提供SSH訪問?

我問這個,因爲我看到有很多的任務,必須從終端來完成,如更新數據庫架構,爲資產創建符號鏈接,清除緩存,等等

回答

15

不應該是一個問題:

  • 與創建的副本系統某處,理想像生產系統一樣的數據庫連接參數。
  • 如果您的數據庫設置允許,請使用參數--env=prod運行所有必需的任務。
  • 將創建的生產數據庫克隆到生產系統(使用phpMyAdmin)。您可以從生產數據庫克隆模式,在本地運行app/console doctrine:schema:update --dump-sql,然後在生產服務器上運行生成的SQL。
  • 的所有文件,但不包括顯示目錄複製在app/cacheapp/log
+2

一樣快,排除緩存和日誌目錄將以異常結束......只是排除應用程序/緩存/ *和app/log/*,以便文件夾在部署的網站上保持爲空 – Flask

+7

是的,這就是爲什麼我在** app/cache和app/log中編寫dirs **的原因。 – chiborg

0

也許有一種方式(與SFTP爲例),但它會像你騎着自行車帶方形輪子;)

+1

如果您的主機提供您的sftp服務,他們通常還包括一個shell帳戶。與方形輪自行車比較可能有點太硬..它的工作原理,但你不會像外殼環境 – Flask

3

我與SF 1.4做過很多次,它應該是一樣容易與SF 2

一些低端主機有限制會導致symfony問題,所以運行symfony兼容性檢查器腳本(您可以上傳它,然後在瀏覽器中輸入其URL以獲取輸出)很重要。一旦完成,請按照以下簡單步驟操作:

  1. 複製項目的所有文件。我通常將項目文件夾壓縮/ tar,上傳並解壓縮。
  2. 從您的開發環境中導出數據庫並將其上傳到您的新服務器。
  3. 編輯配置並更新您的數據庫設置。如果您的代碼中有硬編碼路徑,現在是時候修復這些問題了。
  4. 確保用戶使用apache(或主機使用的任何服務器軟件)具有對緩存和日誌目錄的完全訪問權限。在某些主機上這可能會很棘手,我必須在過去聯繫支持人員才能登錄並更改權限。
  5. 在您的Web主機配置工具中,將您的站點的webroot設置爲項目中的Web文件夾。