部署到Microsoft Azure网站云ob直播app

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.4,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

部署到Microsoft Azure网站云ob直播app

这本循序渐进的烹饪书描述了如何将一个小型Symfony web应用程序部署到Microsoft Azure Websiob娱乐下载te云平台。ob直播app它将解释如何设置一个新的Azure网站,包括配置正确的PHP版本和全局环境变量。该文档还展示了如何利用Git和Composer将Symfony应用程序部署到云中。ob娱乐下载ob直播app

设置Azure网站

要设置一个新的Microsoft Azure网站,首先使用Azure注册或者用你的证件签到。一旦你连接到你的Azure门户界面,向下滚动到底部并选择面板。在此面板中,单击网站并选择自定义创建

创建一个新的自定义Azure网站

步骤1:创建网站

在这里,将提示您填写一些基本信息。

安装Azure网站

对于URL,输入希望用于Symfony应用程序的URL,然后选择ob娱乐下载创建新的网络主机计划在你想要的区域。缺省情况下,免费20 MB SQL数据库在数据库下拉列表中选择。在本教程中,Symfony应用程序将连接到一ob娱乐下载个MySQL数据库。选择创建一个新的MySQL数据库选项。你可以保留DefaultConnection字符串的名字。最后,勾选方框从源代码控制发布启用Git存储库,然后转到下一步。

步骤2:新建MySQL数据库

在这一步中,系统将提示您使用数据库名称和区域设置MySQL数据库存储。MySQL数据库存储由微软和ClearDB合作提供。选择在上一步中为主机计划配置选择的相同区域。

安装MySQL数据库

同意条款和条件,并点击右边的箭头继续。

步骤3:源代码在哪里

现在,在第三步,选择a本地Git存储库项,然后单击右箭头配置Azure网站凭据。

设置一个本地Git存储库

第四步:新用户名和密码

太棒了!你现在到了最后一步。创建用户名和安全密码:这些将成为连接到FTP服务器和将应用程序代码推送到Git存储库的基本标识符。

配置Azure网站凭据

恭喜你!您的Azure网站现在已启动并运行。您可以通过浏览您在第一步中配置的Website url来检查它。你应该在浏览器中看到如下显示:

Azure网站正在运行

Microsoft Azure门户还为Azure网站提供了一个完整的控制面板。

Azure网站控制面板

Azure网站已经准备好了!但是要运行Symfony站ob娱乐下载点,您只需要配置一些额外的东西。

为Symfony配置Azure网站ob娱乐下载

本教程的这一部分详细介绍了如何配置正确的PHP版本以运行Symfony。ob娱乐下载它还向您展示了如何启用一些强制的PHP扩展,以及如何为生产环境正确配置PHP。

配置最新的PHP运行时

尽管Symfony只需要ob娱乐下载运行PHP 5.3.3,但总是建议尽可能使用最新的PHP版本。PHP核心团队不再支持PHP 5.3,但您可以在Azure中轻松更新它。

要在Azure上更新PHP版本,请转到配置单击控制面板上的选项卡,选择需要的版本。

从Azure网站控制面板启用最新的PHP运行时

单击保存按钮,以保存您的更改并重新启动web服务器。

请注意

选择最新的PHP版本可以极大地提高运行时性能。PHP 5.5附带了一个新的内置PHP加速器OPCache,它取代了APC。在Azure网站上,OPCache已经启用,不需要安装和设置APC。

下面的屏幕截图显示了一个phpinfo脚本从Azure网站运行,以验证PHP 5.5在启用OPCache的情况下运行。

OPCache配置

调整php.ini配置设置

Microsoft Azure允许您重写php . ini通过创建一个自定义全局配置设置.user.ini项目根目录(网站/ wwwroot).

1 2 3 4
;.user.iniexpose_phpmemory_limit256upload_max_filesize10

这些设置都没有需要被覆盖。默认的PHP配置已经非常好了,因此这只是一个示例,展示如何通过上传自定义来轻松调整PHP内部设置. ini文件。

目录下的Azure网站FTP服务器上手动创建此文件网站/ wwwroot目录或使用Git部署它。的Azure网站控制面板中获取FTP服务器凭据指示板选项卡在右侧侧栏。如果您想使用Git,只需将您的.user.ini在您的本地存储库的根文件,并将提交推到您的Azure网站存储库。

请注意

这本烹饪书有一节专门解释如何配置Azure网站Git存储库,以及如何推送要部署的提交。看到从Git部署.您还可以在官方网站上了解有关配置PHP内部设置的更多信息PHP MSDN文欧宝官网下载app档页面。

启用PHP intl扩展

这是指南中棘手的部分!在编写这本烹饪书时,Microsoft Azure网站提供了intl扩展,但默认不启用。要启用intl扩展时,不需要上传任何DLL文件作为php_intl.dll文件在Azure上已经存在。事实上,这个文件只需要移动到自定义网站扩展目录。

请注意

微软Azure团队目前正致力于启用intl默认为PHP扩展。在不久的将来,将不再需要以下步骤。

为了得到php_intl.dll在你的网站/ wwwroot目录,只需在线访问捻角羚工具浏览到以下网址:

1
https:// [your-website-name] .scm.azurewebsites.net

捻角羚是一组用于管理应用程序的工具。它带有文件资源管理器、命令行提示符、日志流和配置设置汇总页面。当然,此部分只能在登录Azure网站主帐户时才能访问。

Kudu面板

从Kudu首页,点击调试控制台导航项在主菜单中选择CMD.这将打开调试控制台页面,下面显示文件资源管理器和控制台提示符。

在控制台提示符中,键入以下三个命令来复制原始文件php_intl.dll扩展文件到自定义网站ext /目录中。这个新目录必须在主目录下创建网站/ wwwroot

1 2 3
cd站点\wwwroot $ mkdir ext $ copy"D:\Program Files (x86)\PHP\v5.5\ext\php_intl.dll"ext

整个过程和输出应该是这样的:

在Kudu Console在线提示符下执行命令

完成的激活php_intl.dll扩展,你必须告诉Azure网站从新创建的加载它ext目录中。这可以通过注册一个全局变量来实现PHP_EXTENSIONS环境变量来自配置选项卡的主要Azure网站控制面板。

应用程序设置节,注册PHP_EXTENSIONS环境变量的值ext \ php_intl.dll如下图截图所示:

注册自定义PHP扩展

点击“保存”确认更改并重新启动web服务器。PHPIntl扩展现在应该在您的web服务器环境中可用。下面是一个phpinfo页验证intl扩展已正确启用:

启用Intl扩展

太棒了!PHP环境设置现在已经完成。接下来,您将学习如何配置Git存储库并将代码推送到生产环境。您还将了解如何在部署Symfony应用程序后安装和配置它。ob娱乐下载

从Git部署

首先,在您的终端上使用以下命令确保Git正确安装在您的本地机器上:

1
$ git——版本

请注意

把你的Git从git-scm.com网站,并按照说明在本地机器上安装和配置它。

在Azure网站控制面板中,浏览部署选项卡来获取Git存储库的URL,你应该把你的代码放在那里:

Git部署面板

现在,您需要将本地Symfony应用程序与Azure网站上的远程Git存储库连ob娱乐下载接起来。如果尚未使用Giob娱乐下载t存储Symfony应用程序,则必须首先在Symfony应用程序目录中使用git init命令并向其承诺git提交命令。

另外,确保您的Symfony存储库具有ob娱乐下载.gitignore在其根目录下至少包含以下内容的文件:

12 3 4 5 6 7 8 9 10 11 12 13 14
/应用程序/ bootstrap.php。Cache /app/ Cache /* /app/config/parameters.使用实例Yml /app/logs/* !app/cache/。gitkeep ! / app /日志。gitkeep /app/ob娱乐下载SymfonyRequirements.php /build/ /vendor/ /bin/ /composer。Phar /web/app_dev.php /web/bundles/ /web/config.php

.gitignorefile要求Git不要跟踪任何与这些模式匹配的文件和目录。这意味着这些文件不会部署到Azure网站。

现在,在本地机器的命令行中,在Symfony项目的根目录下输入以下命令:ob娱乐下载

1 2
$ git远程添加azure https://@.scm.azurewebsites.net:443/.git $ git推送azure master

不要忘记替换所包含的值<而且>中显示的自定义设置部署选项卡的Azure网站面板。的git远程命令连接Azure网站远程Git存储库,并使用名称为其分配别名azure.第二个git推命令将所有提交推到远程遥控器的分支azureGit存储库。

使用Git的部署应该产生类似于下面截图的输出:

将文件部署到Git Azure网站存储库

Symfony应用程序的代码现在ob娱乐下载已经部署到Azure网站,您可以从Kudu应用程序的文件资源管理器中浏览。你应该看到app /src /而且web /你的网站/ wwwrootAzure Website文件系统上的目录。

配置Symfony应用程序ob娱乐下载

PHP已经配置好,代码已经用Git推送。最后一步是配置应用程序并安装它所需的第三方依赖项,Git不会跟踪这些依赖项。切换回在线模式控制台在Kudu应用中执行如下命令:

1 2 3
cdsite\wwwroot $ curl -sS https://getcomposer.org/installer | php $ php -d extension=php_intl.dll编写器。phar安装

旋度命令检索并下载Composer命令行工具,并将其安装在网站/ wwwroot目录中。然后,运行Composer安装命令下载并安装所有必要的第三方库。

这可能需要一段时间,具体取决于您在配置中的第三方依赖项的数量composer.json文件。

请注意

- d开关允许您快速覆盖/添加任何php . ini设置。在这个命令中,我们强制PHP使用intl扩展,因为它没有在Azure网站默认启用的时刻。很快,这- d选项将不再需要,因为微软将启用intl默认为扩展名。

在最后作曲家安装命令时,系统将提示您填写一些Symfony设置的值,如数据库凭据、区域设置、邮件凭据、CSRF令牌保护等。ob娱乐下载这些参数来自应用程序/配置/ parameters.yml.dist文件。

配置Symfony全局参ob娱乐下载数

这本烹饪书中最重要的事情是正确设置数据库设置。的右侧侧栏上可以获取MySQL数据库设置Azure网站仪表板面板。只需按一下查看连接字符串链接,使它们出现在弹出窗口中。

MySQL数据库设置

显示的MySQL数据库设置应该类似于下面的代码。当然,每个值都取决于您已经配置的内容。

1
数据库=mysymfoob娱乐下载nyMySQL;数据源=eu-cdbr- az- north-c.cloudappob直播app.net;用户Id=bff2481a5b6074

切换回控制台,回答提示的问题并提供以下答案。不要忘记使用MySQL连接字符串中的实际值调整下面的值。

1 2 3 4 5 6 7
database_driver: pdo_mysql database_host: u-cdbr- az-northc.cloob直播appudapp.net database_port: null database_name: mysymob娱乐下载fonyMySQL database_user: bff2481a5b6074 database_password: bdf50b42 //…

别忘了回答所有的问题。属性设置唯一的随机字符串非常重要秘密变量。对于邮件发送器配置,Azure Website不提供内置邮件发送器服务。如果您的应用程序需要发送电子邮件,您应该考虑配置一些其他第三方邮件服务的主机名和凭据。

Symfony的配置ob娱乐下载

您的Symob娱乐下载fony应用程序现在已经配置好了,应该可以运行了。最后一步是构建数据库模式。如果您使用Doctrine,这可以通过命令行界面轻松完成。在网上控制台执行以下命令将表挂载到MySQL数据库中。

1
$ PHP应用程序/控制台原则:schema:update——force

这个命令为MySQL数据库构建表和索引。如果您的Symfob娱乐下载ony应用程序比基本的Symfony标准版更复杂,您可能需要执行额外的命令来进行设置(请参阅如何部署Symfony应用程序ob娱乐下载).

控件,以确保应用程序正在运行app.php前端控制器与您的web浏览器和以下url:

1
http:// < your-website-name > .azurewebsites.net/web/app.php

如果正ob娱乐下载确安装了Symfony,您应该会看到Symfony应用程序的首页显示。

配置Web服务器

至此,Symfony应用程序已经部署完ob娱乐下载毕,并且可以在Azure网站上完美地工作。然而,网络文件夹仍然是url的一部分,这是您绝对不希望看到的。不过别担心!您可以轻松地将web服务器配置为指向网络文件夹并删除网络在URL中(并保证没有人可以访问网络目录中。)

为此,创建并部署以下内容(请参阅关于Git的前一节). config文件。该文件必须位于项目的根目录中composer.json文件。此文件是微软IIS服务器中众所周知的等效文件. htaccess文件从Apache。对于Symfob娱乐下载ony应用程序,使用以下内容配置它:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
<!——网络。配置- - ><?xml version="1.0" encoding="UTF-8"?><配置><system.webServer><重写><规则><清晰的/><规则的名字“BlockAccessToPublic”patternSyntax“通配符”stopProcessing“真正的”><匹配url“*”/><条件logicalGrouping“MatchAll”trackAllCaptures“假”><添加输入“{URL}”模式“/ web / *”/>条件><行动类型“CustomResponse”statusCode“403”statusReason“禁止:拒绝访问。”statusDescription“您没有使用您提供的凭证查看此目录或页面的权限。”/>规则><规则的名字“RewriteAssetsToPublic”stopProcessing“真正的”><匹配url“^ (. *)(\ . css . js | | \ \ jpg | \ . png | \ gif) $”/><条件logicalGrouping“MatchAll”trackAllCaptures“假”>条件><行动类型“改写”url“web / {R: 0}”/>规则><规则的名字“RewriteRequestsToPublic”stopProcessing“真正的”><匹配url“^(. *)$”/><条件logicalGrouping“MatchAll”trackAllCaptures“假”>条件><行动类型“改写”url“网络/ app.php / {R: 0}”/>规则>规则>重写>system.webServer>配置>

如你所见,这是最新规定RewriteRequestsToPublic负责重写任何url到web / app.php前端控制器,它可以让你跳过web /URL中的文件夹。第一条规则叫做BlockAccessToPublic属性的所有url模式匹配web /文件夹,并提供403年被禁止的而是HTTP响应。这个例子是基于Benjamin Eberlei的样本,你可以在GitHub上找到ob娱乐下载SymfonyAzureEdition包。

的目录下部署此文件网站/ wwwroot目录的Azure网站和浏览到您的应用程序没有web / app.php段。

结论

不错的工作!现在,您已经将Symfony应用程序部署到Microb娱乐下载osoft Azure Website Cloud平台。ob直播app您还看到,可以在Microsoft ob娱乐下载IIS web服务器上轻松地配置和执行Symfony。该过程简单易行。此外,微软还在继续减少所需步骤的数量,使部署变得更加容易。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。