首页 > 后端开发 > php教程 > Symfony 2用于开发和部署的清单

Symfony 2用于开发和部署的清单

Jennifer Aniston
发布: 2025-02-21 10:34:11
原创
607 人浏览过

Symfony 2用于开发和部署的清单

钥匙要点

  • 在开始开发过程之前,要测试生产服务器的兼容性至关重要,以避免潜在的问题,例如丢失的库或应用程序所依赖的不变的全局设置。
  • 服务器准备,版本控制,远程开发模式,缓存更新和错误页面自定义是在Symfony 2应用程序部署过程中要考虑的一些关键方面。
  • 使用Git进行版本控制可以帮助在开发过程中对远程站点进行本地更改。每次更新应用程序以避免错误时清除缓存也很重要。>
  • >自定义Symfony 2应用程序的错误页面可以提供更量身定制的用户体验。但是,这些页面不支持Twig模板扩展名,因此必须从头开始设计。>
  • 在我的建筑物中,我的个人网络应用程序与Symfony 2系列发布在SitePoint上的脚趾,我介绍了引导,开发和完成(在一些高级技术上)的一些基础知识,以使用Symfony 2来开发Web应用程序。但是,由于该系列的长度限制,我们在“最终”步骤中没有涵盖太多:将Symfony 2应用程序部署到生产环境中。
  • 当我们进行开发时,我们很可能处于“根”角色;但是在生产环境中,我们可能被剥夺了这种特权。另外,设置可能不同。为了使情况变得更糟,有时我们无法像在自己的机器中那样更改这些设置。
  • > 因此,在我们自己的服务器中进行任何实际开发之前,检查我们的生产服务器的“兼容性”非常重要。这将避免这种可怕的情况,例如:Symfony依赖的库缺失,该应用程序所依赖的某些全局设置不变,等等。
>测试生产服务器的“兼容性”确实应该是我们一开始就做的事情。在部署期间还有其他一些方面要解决 - 例如用于各种错误消息的模板等。

> 在以下各节中,我们将假设您对生产服务器没有完全控制。如果这样做,大多数兼容性问题可能不适用,因为您应该可以轻松地自己解决它们。

>生产服务器上的空物框架

>请按照我在Symfony 2上的第一篇文章中的说明进行说明,以在Production Server上设置一个空的Symfony框架。

>这对于测试服务器是否已启用卷曲也很有用,不仅安装在服务器上,而且作为PHP扩展名,确保我们可以获取外部资源。在我的特殊情况下,这非常重要 - composer.org在我的国家被阻止,我需要使用代理来获取和安装Symfony框架。>

>以后可以将此空框架检查到版本控件中。

config file

Symfony 2附带一个config.php文件,该文件位于Web目录中。这是测试大多数“准备就绪”问题的脚本。要访问该页面,我们需要对其进行一些调整:

<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>
登录后复制
登录后复制
这个文件仅是从本地浏览器调用的。如果块,我们需要评论第二个,以便我们可以远程访问它。

我的服务器已正确配置,没有任何关键问题:>

Symfony 2用于开发和部署的清单此文件测试了我在下表中总结的准备问题。实际测试是在App/SymfonyRequirentess.php中完成的,因此我们还可以查看该文件。

设置/模块 要求 严重性 >动作 PHP版本 = 5.3.3 需要但不得是5.3.16 升级到最新版本。建议至少使用PHP 5.4.8及以上。 供应商库 由composer.phar安装 必需的 使用composer.phar更新 缓存,日志目录 可写 必需的 通过发行CHMOD授予许可。通常,特权应为755或777。 时区 类似“亚洲/上海”或您的时区 必需的 更改php.ini。 json_encode,session_start,ctype_alpha,token_get_all,simplexml_import_dom 启用 必需的 启用各自的PHP库。大多数PHP服务器都启用了这些。 APC 启用/禁用 如果使用APC,请启用 启用APC或禁用APC(如果使用另一个缓存/加速器)。 xdebug 各种设置 需要,建议 相应地更改Xdebug设置。 domdocument,mb_strlen,iCony,utf8_decode,intl等 各种模块 受到推崇的 启用,如果您愿意。 加速器 各种设置 受到推崇的 根据您的要求安装和启用。 >“必需”的严重程度意味着我们必须更改服务器设置以满足要求。否则,Symfony 2将不会运行,因此不应该是我们应用程序开发的正确选择。可以安全地忽略“推荐”项目,但我确实建议我们尽可能地满足这些建议。在我的情况下(如上所述),我的生产服务器只有一个警告。这为进一步发展建立了坚实而可靠的基础。

使用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>
登录后复制

>清除缓存

> SYMFONY应用程序首次在远程服务器上运行时,它将在应用程序/CACH/PORD目录中创建我们的应用程序的编译版本。当我们的文件(尤其是我们的控制器和路由)更新时,我们需要刷新缓存,或者输出可能不正确,并且通常会导致500个错误。

要清除缓存,我通常会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>
登录后复制
Symfony 2的默认树枝模板引擎确实提供了一些错误页面(404、500等)。但是这些页面的设计通常不符合我们的应用。官方网站对如何执行此操作有详细的解释。我们可以根据自己的布局和主题来开发自己的错误页面。

>我们可以自定义错误页面,并将它们放在应用程序/资源/twigbundle/views/exception下。可以将文件命名为404错误,error403.html.twig的文件error404.html。

>重要的是要注意,在Symfony 2中,错误消息页面不支持TWIG模板扩展。这意味着我们无法从为其他页面设计的现有布局扩展到错误页面。我们必须从头开始设计错误页面。这有点不方便,但仍然值得一个严肃的网站。

结论

在本文中,我们介绍了一些与Symfony部署相关的主题:服务器准备,版本控制,远程开发模式,缓存更新,错误页面自定义等。

> 部署通常是我们发展的最后一步。我希望这篇文章能帮助您避免一些常见的pitfals,并使您的部署过程更加顺利。

>如果您觉得它很有趣或有用,请重新检查本文,如果您有反馈,请在下面发表评论,非常感谢!

>!

经常询问有关Symfony 2开发和部署的问题

什么是Symfony 2,为什么我应该将其用于我的Web开发项目?

Symfony 2是用于开发Web应用程序的高性能PHP框架。它以速度,灵活性和可重复使用的组件而闻名。它允许开发人员有效地构建强大的应用程序。该框架遵循MVC(模型视图控制器)设计模式,这使得管理代码库更容易,并促进可扩展应用程序的开发。 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具有许多功能,使其成为Web开发的强大工具。其中一些功能包括其可重复使用的组件,可以在多个项目中使用,其对MVC设计模式的支持,可促进清洁和可维护的代码以及将其用于数据库抽象的学说ORM。 Symfony 2还具有强大的安全组件,可为您的应用程序提供全面的安全系统。

>如何部署Symfony 2应用程序?

>如何将我的Symfony 2应用程序升级到较新版本?

2可以使用Composer完成对较新版本的应用程序。首先,您需要在项目中更新“ composer.json”文件,以指定要使用的新版本的Symfony。之后,您可以运行“作曲家更新”命令来更新您的应用程序。升级后彻底测试您的应用程序很重要,以确保一切正常工作。其他软件中的插件。它们是包装和分发Symfony 2代码的一种方式。它们可以包含库,模板,控制器,配置中的任何内容 - 本质上是可以执行的任何PHP代码。您可以使用Symfony社区提供的捆绑包或创建自己的捆绑包。要使用捆绑包,您需要下载它,在'appkernel.php'文件中启用它,并在必要时进行配置。

>如何处理Symfony 2? > Symfony 2提供了一种强大而灵活的方法来处理错误和异常。它带有内置的“调试”组件,该组件在开发过程中提供详细的错误消息。在生产环境中,Symfony 2捕获了所有例外,并将它们转换为“响应”对象。您可以通过在'app/resource/twigbundle/twigbundle/views/extescondory中创建模板来自定义错误页面。一个“表单”组件,可轻松创建和管理表单。您可以通过创建“ formType”类并以形式定义字段来创建表单。创建表单后,您可以处理控制器中的表单提交。 Symfony 2还提供了一种使用验证约束来验证表单数据的方法。

如何在Symfony 2中管理用户身份验证和授权?和授权。您可以配置不同的身份验证方法,例如形式登录,HTTP基本身份验证或OAuth。为了授权,Symfony 2提供了灵活的“访问控制列表”(ACL)系统,该系统允许您为用户定义细粒度的权限。

>如何优化Symfony 2应用程序的性能?

>有几种方法可以优化Symfony 2应用程序的性能。其中一些包括使用“产品”环境进行生产,使APC PHP扩展用于OpCode缓存,使用作曲家优化自动加载器,并使用“ HTTPCACHE”类使用“ HTTPCACHE”类将HTTP缓存标头添加到您的响应中。

以上是Symfony 2用于开发和部署的清单的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板