> 在以下各节中,我们将假设您对生产服务器没有完全控制。如果这样做,大多数兼容性问题可能不适用,因为您应该可以轻松地自己解决它们。
>生产服务器上的空物框架>请按照我在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中文网其他相关文章!