> 在以下各節中,我們將假設您對生產服務器沒有完全控制。如果這樣做,大多數兼容性問題可能不適用,因為您應該可以輕鬆地自己解決它們。
>生產服務器上的空物框架>請按照我在Symfony 2上的第一篇文章中的說明進行說明,以在Production Server上設置一個空的Symfony框架。
>這對於測試服務器是否已啟用捲曲也很有用,不僅安裝在服務器上,而且作為PHP擴展名,確保我們可以獲取外部資源。在我的特殊情況下,這非常重要 - composer.org在我的國家被阻止,我需要使用代理來獲取和安裝Symfony框架。
>以後可以將此空框架檢查到版本控件中。
<span><span><?php </span></span><span> </span><span><span>if (!isset($_SERVER['HTTP_HOST'])) { </span></span><span> <span>exit('This script cannot be run from the CLI. Run it from a browser.'); </span></span><span><span>} </span></span><span> </span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array( </span></span><span> <span>'127.0.0.1', </span></span><span> <span>'::1', </span></span><span><span>))) { </span></span><span> <span>header('HTTP/1.0 403 Forbidden'); </span></span><span> <span>exit('This script is only accessible from localhost.'); </span></span><span><span>} </span></span><span><span>...</span></span>
我的服務器已正確配置,沒有任何關鍵問題:
此文件測試了我在下表中總結的準備問題。實際測試是在App/SymfonyRequirentess.php中完成的,因此我們還可以查看該文件。
設置/模塊
使用git同步文件
在開發過程中,您可以使用版本控件將文件複製到遠程站點的本地更改。在這種情況下,適當的.gitignore(或其他版本控制系統中的等效物)將變得方便。我的.gitignore文件的以下摘錄是用於參考:這絕不是詳盡或適合的列表。例如,如果您使用phpstorm,但不使用Netbeans,則可以刪除NetBeans部分,並用適合PhpStorm的過濾器替換:
<span><span><?php </span></span><span> </span><span><span>if (!isset($_SERVER['HTTP_HOST'])) { </span></span><span> <span>exit('This script cannot be run from the CLI. Run it from a browser.'); </span></span><span><span>} </span></span><span> </span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array( </span></span><span> <span>'127.0.0.1', </span></span><span> <span>'::1', </span></span><span><span>))) { </span></span><span> <span>header('HTTP/1.0 403 Forbidden'); </span></span><span> <span>exit('This script is only accessible from localhost.'); </span></span><span><span>} </span></span><span><span>...</span></span>
或只是將它們都放在其中,因此您會自動容納可能使用其他IDE的其他開發人員。建議始終包含前3節(作曲家,Symfony,Logs)。
<span># Composer </span><span>vendor </span><span>vendor/* </span><span>!public/assets/js/vendor </span><span>!public/assets/js/vendor/* </span><span>!public/assets/css/vendor </span><span>!public/assets/css/vendor/* </span><span>composer.phar </span><span>composer.lock </span><span> </span><span># Symfony </span><span>app/cache/* </span><span>app/logs/* </span><span> </span><span># Logs </span><span>error.log </span><span>access.log </span><span> </span><span># Netbeans </span><span>nbproject </span><span>.nbproject </span><span>.nbproject/* </span><span>nbproject/* </span><span>nbproject/private/ </span><span>build/ </span><span>nbbuild/ </span><span>dist/ </span><span>nbdist/ </span><span>nbactions.xml </span><span>nb-configuration.xml</span>
>清除緩存
要清除緩存,我通常會ssh到我的生產服務器,並在App Directory下執行RM -RF緩存命令。控制台緩存:清除或控制台緩存:熱身命令可能不是最乾淨的方法。
遠程開發模式
為此,我們採用類似的方法來通過評論App_dev.php中的以下代碼塊禁用Local -Host檢查
然後,我們可以訪問域和頁面,並以http://rsywx_remote/app_dev.php之類的內容進行訪問。當出現問題時,此開發模式將顯示更有用的調試信息,並可以幫助我們找到一些根深蒂固的問題。要在此調試期內增加安全性,請添加一張僅允許從您自己的IP訪問到上面文件的檢查 - 這將使其他所有人都保持開發模式。大多數問題將與數據庫設置有關(錯誤的數據庫和/或憑據),錯誤的API URI(本地和遠程URIS可能不同),過時的緩存,缺少本地使用但未遠程啟用的庫等。
解決問題後,請記住要解開這些行以恢復完整的訪問控制。普通用戶只能被允許使用app.php作為我們的應用程序的輸入點。自定義錯誤頁面
<span># IntelliJ - PhpStorm and PyCharm </span><span>.idea </span><span>.idea/ </span><span>.idea/* </span><span>*.iml </span><span>*.ipr </span><span>*.iws </span>
>我們可以自定義錯誤頁面,並將它們放在應用程序/資源/twigbundle/views/exception下。可以將文件命名為404錯誤,error403.html.twig的文件error404.html。
>重要的是要注意,在Symfony 2中,錯誤消息頁面不支持TWIG模板擴展。這意味著我們無法從為其他頁面設計的現有佈局擴展到錯誤頁面。我們必須從頭開始設計錯誤頁面。這有點不方便,但仍然值得一個嚴肅的網站。
> 部署通常是我們發展的最後一步。我希望這篇文章能幫助您避免一些常見的pitfals,並使您的部署過程更加順利。
>如果您覺得它很有趣或有用,請重新檢查本文,如果您有反饋,請在下面發表評論,非常感謝!
>!經常詢問有關Symfony 2開發和部署的問題
>如何在本地機器上安裝Symfony 2?涉及幾個步驟。首先,您需要確保安裝了PHP。 Symfony 2需要PHP 5.3.9或更高。安裝了PHP後,您可以使用PHP的依賴關係管理工具來安裝Symfony。您可以從其官方網站下載作曲家。安裝作曲家後,您可以通過運行命令的“ Create-Project Symfony/Framework-standard-edition my_project_name”。
>如何將我的Symfony 2應用程序升級到較新版本?
>如何處理Symfony 2? > Symfony 2提供了一種強大而靈活的方法來處理錯誤和異常。它帶有內置的“調試”組件,該組件在開發過程中提供詳細的錯誤消息。在生產環境中,Symfony 2捕獲了所有例外,並將它們轉換為“響應”對象。您可以通過在'app/resource/twigbundle/twigbundle/views/extescondory中創建模板來自定義錯誤頁面。一個“表單”組件,可輕鬆創建和管理表單。您可以通過創建“ formType”類並以形式定義字段來創建表單。創建表單後,您可以處理控制器中的表單提交。 Symfony 2還提供了一種使用驗證約束來驗證表單數據的方法。
>有幾種方法可以優化Symfony 2應用程序的性能。其中一些包括使用“產品”環境進行生產,使APC PHP擴展用於OpCode緩存,使用作曲家優化自動加載器,並使用“ HTTPCACHE”類使用“ HTTPCACHE”類將HTTP緩存標頭添加到您的響應中。
以上是Symfony 2用於開發和部署的清單的詳細內容。更多資訊請關注PHP中文網其他相關文章!