2014-03-25 82 views
0

我一直在我的網站上工作一段時間,現在我準備推動這個全新的項目生活。上線步驟 - Symfony2

我已經閱讀了這個link on Symfony2關於應該做什麼,但我仍然認爲它缺少一些細節。例如,它沒有提到我運行的一些命令來讓網站實時運行。

目前,這是我想怎樣做才能得到這個活工作:

php composer.phar install --no-dev --optimize-autoloader --no-scripts 
rm -rf app/cache/* 
php app/console assetic:dump --env=prod --no-debug 
php app/console assets:install web --symlink --env=prod 

還有其它任何需要做的事情,例如,我不希望活到能以執行我的燈具,也不希望任何用戶能夠去www.mysite.com/app_dev.php

+1

您還應該執行'app/console cache:clear --env = prod'。爲了不訪問'app_dev.php'文件,應該有[默認安全性](https://github.com/symfony/symfony-standard/blob/2.4/web/app_dev.php#L12-L18)檢查。 – Touki

+0

@Touki,謝謝你。我已將它添加到列表中。 –

回答

0

給我最好的解決辦法是讓你的項目像git的一個versionning系統或沒有廠商當然DIR svn的...

這樣,你的只需要做:

1) git clone your project into the prod dir 

2) php composer.phar install to install your vendors 

2b) create the mysql user with correct login and password according to your parameters.yml 

3) php app/console doctrine:database:create to create your database with the credentials you set up in mysql 

4) php app/console doctrine:schema:update --force to perform the database tables creation 
5) testing the project :) 

如果您使用的不是versionning系統只需上傳您的項目有沒有供應商目錄中的FTP軟件服務器(將通過第2步進行feeded)然後進行第三,四,第五步!

你現在應該可以通過你的域名網址找到你的項目。

+0

我們確實使用git。然而,關於代碼並不是真正的問題,而是更多需要運行的腳本。如果我要執行你的第2步「php composer.phar install」,它會錯誤地安裝我的所有開發者廠商,如Liip,WebProfilerBundle,FakerBundle等等。另外,我認爲使用遷移會比schema更好:update ...以防萬一你想回滾。 –

+0

我們在生產部署的每個項目上都使用這個過程,即使在多個模式更新中,一切都很好(你仍然需要讓你的數據庫與你的代碼同步:)) –

1

結帳How to deploy a Symfony2 application

請參閱上面的鏈接。部署Symfony2應用程序時採取的典型步驟包括:

  1. 將您的修改代碼上傳到活動服務器;
  2. 更新您的供應商依賴關係(通常通過Composer完成,並且可能在上傳之前完成);
  3. 運行數據庫遷移或類似任務來更新任何已更改的數據結構;
  4. 清除(也許更重要的是預熱)您的緩存。

共同部署後任務

  1. 配置您的應用程序/配置/ parameters.yml文件
  2. 更新您的供應商

    $ PHP作曲家。藥業安裝--no-dev的--optimize-自動加載

  3. 清除您的Symfony緩存

    $ PHP應用程序/控制檯高速緩存:明確--env =督促--no調試

  4. 轉儲assetic資產

    $ PHP應用程序/控制檯assetic:轉儲--env =督促--no調試

  5. 其他的事情!

可能有很多,你需要做的,根據您的設置其他的事情:

  • 運行任何數據庫遷移
  • 清除您的APC緩存
  • 運行資產:安裝(照顧已在composer.phar安裝)
  • 添加/編輯CRON作業
  • 將資產推到CDN
  • ...
+0

我在原始文章中實際上有同樣的鏈接;-)我非常同意你所說的話,但我只是想確保沒有我錯過的東西。到目前爲止,它看起來不像。如果是這樣的話,我會把這個答案標記爲「接受」。謝謝(你的)信息。 –