钥匙要点
- 在开始开发过程之前,要测试生产服务器的兼容性至关重要,以避免潜在的问题,例如丢失的库或应用程序所依赖的不变的全局设置。 服务器准备,版本控制,远程开发模式,缓存更新和错误页面自定义是在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></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></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应用程序升级到较新版本?
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中文网其他相关文章!

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版
中文版,非常好用

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器