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

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></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></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
在Laravel中使用Flash会话数据在Laravel中使用Flash会话数据Mar 12, 2025 pm 05:08 PM

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

php中的卷曲:如何在REST API中使用PHP卷曲扩展php中的卷曲:如何在REST API中使用PHP卷曲扩展Mar 14, 2025 am 11:42 AM

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

简化的HTTP响应在Laravel测试中模拟了简化的HTTP响应在Laravel测试中模拟了Mar 12, 2025 pm 05:09 PM

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

在Codecanyon上的12个最佳PHP聊天脚本在Codecanyon上的12个最佳PHP聊天脚本Mar 13, 2025 pm 12:08 PM

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

PHP记录:PHP日志分析的最佳实践PHP记录:PHP日志分析的最佳实践Mar 10, 2025 pm 02:32 PM

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

解释PHP中晚期静态结合的概念。解释PHP中晚期静态结合的概念。Mar 21, 2025 pm 01:33 PM

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

自定义/扩展框架:如何添加自定义功能。自定义/扩展框架:如何添加自定义功能。Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

框架安全功能:防止漏洞。框架安全功能:防止漏洞。Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

螳螂BT

螳螂BT

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

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器