窗户和symfonyob娱乐下载
作者:Laurent Bonnet
概述
本文档是一个新的循序渐进的教程,涵盖了symfony框架在Windows Server 2008上的安装、部署和功能测试。ob娱乐下载
为了准备Internet部署,本教程可以在一个托管在Internet上的专用服务器环境中执行。
当然,也可以在本地服务器或读者工作站上的虚拟机上完成本教程。
制作新教程的原因
目前,symfony上有两个与Microsoft Internet information Server (IIS)相关的信息来源ob娱乐下载网站,但它们指的是以前的版本,没有与更新版本的微软Windows操作系统,特别是Windows Server 2008(发布于2008年2月),其中包括许多对PHP开发人员感兴趣的变化:
IIS版本7,嵌入Windows Server 2008的版本,完全被重写为完全模块化的设计。
iis7已经被证明是非常可靠的,自产品发布以来,很少需要从Windows更新中进行修复。
IIS 7还包括FastCGI加速器,这是一个多线程应用程序池,可以利用Windows操作系统的本地线程模型。
在没有缓存的情况下,与传统的ISAPI或CGI部署在Windows和IIS上的PHP相比,FastCGI实现的PHP在执行方面的性能提高了5到10倍。
最近,微软为PHP打开了缓存加速器的帷幕,在撰写本文时(2009-11-02),该加速器处于发布候选状态。
侧边栏
本教程的计划扩展
本章的补充部分正在编写中,并将在本书出版后不久在symfony项目网站上发布。ob娱乐下载它涵盖了通过PDO连接到MS SQL Server的功能,微软计划在不久的将来对此进行改进。
[PHP_PDO_MSSQL] = php_pdo_mssql.dll延伸
目前,代码执行中的最佳性能是由Microsoft本地SQL Server PHP 5驱动程序获得的,这是Windows上可用的开源驱动程序,目前版本为1.1。这是一个新的PHP扩展DLL:
[PHP_SQLSRV] = php_sqlsrv.dll延伸
可以使用Microsoft SQL Server 2005或2008作为数据库。计划中的教程扩展将涵盖免费版本:SQL Server Express的使用。
如何在不同的Windows系统上玩本教程,包括32位
本文档专门为64位版本的Windows Server 2008编写。但是,您应该能够使用其他版本而不会出现任何并发症。
请注意
屏幕截图中使用的操作系统软件的确切版本是Windows Server 2008 Enterprise Edition with Service Pack 2, 64位版本。
32位Windows版本
本教程很容易移植到32位版本的Windows,通过替换文本中的以下引用:
64位版本:
C:\Program Files (x86)\
而且C:\Windows\SysWOW64\
32位版本:
C:\Program Files\
而且C:\Windows\System32\
关于企业版以外的其他版本
此外,如果您没有企业版,这也不是问题。本文档可直接移植到其他版本的Windows Server软件:Windows Server 2008 Web、标准或数据中心Windows Server 2008 Web、标准或数据中心with Service Pack 2 Windows Server 2008 R2 Web、标准、企业或数据中心版本。
请注意,所有版本的Windows Server 2008 R2仅提供64位操作系统。
关于国际版本
截图中使用的区域设置为en - us
.我们还为法国安装了一个国际语言包。
本教程可以在Windows客户端操作系统上执行:Windows XP, Windows Vista和Windows 7都是x64和x86模式。
整个文档中使用的Web服务器
所使用的web服务器是Microsoft Internet Information server version 7.0,它作为角色包含在所有Windows server 2008版本中。我们从一个功能齐全的Windows Server 2008服务器开始本教程,并从头开始安装IIS。安装步骤使用默认选项,我们简单地添加了IIS 7.0模块化设计附带的两个特定模块:FastCGI而且URL重写.
数据库
SQLite是symfony沙盒的预配置数据库。ob娱乐下载在Windows上,没有什么特别需要安装的:SQLite支持直接在用于SQLite的PDO PHP扩展中实现,该扩展在PHP安装时安装。
因此,不需要下载并运行单独的SQLITE.EXE实例:
[PHP_PDO_SQLITE] = php_pdo_sqlite.dll延伸
Windows服务器配置
为了与本章中的逐步截图相匹配,最好使用一个新的Windows Server安装。
当然,您可以直接在现有机器上工作,但是由于安装的软件、运行时和区域配置,您可能会遇到差异。
为了获得与本教程中显示的相同的屏幕截图,我们建议在虚拟环境中获取一个专用的Windows Server,可以在互联网上免费获得,有效期为30天。
侧边栏
如何获得免费的Windows Server试用版?
当然,可以使用任何有互联网接入的专用服务器。物理服务器甚至虚拟专用服务器(VDS)都可以很好地工作。
Ikoula提供了一款30天的Windows服务器作为试用版。Ikoula是一家法国网站托管公司,为开发人员和设计师提供全面的服务清单。对于在Microsoft Hyper-V环境中运行的Windows虚拟机,该试用版的起价为0欧元/月。是的,你可以在30天内免费获得一台功能齐全的虚拟机,包括Windows Server 2008 Web版、标准版、企业版甚至数据中心版。
要订购,只需打开浏览器到http://www.ikoula.com/flex_server,然后点击“Testez gratuitement”按钮。
为了得到与本文档中概述的相同的消息,我们为Flex服务器订购的操作系统是:“Windows server 2008 Enterprise Edition 64位”。这是一个x64发行版,同时提供fr-FR和en-US地区。这很容易转换- fr
来en - us
反之亦然,从Windows控制面板。具体来说,这个设置可以在“键盘和语言”选项卡下的“区域和语言选项”中找到。只需点击“安装/卸载语言”。
必须具有管理员对服务器的访问权限。
如果从远程工作站工作,阅读器应该运行远程桌面服务(以前称为终端服务器客户端),并确保他具有管理员访问权限。
这里使用的发行版是:Windows Server 2008 with Service Pack 2。
Windows Server 2008安装了图形环境,与Windows Vista的外观和感觉相匹配。也可以只对具有相同服务的Windows Server 2008版本使用命令行,以减少发行版的大小(1.5 GB而不是6.5 GB)。这也减少了攻击面和需要应用的Windows更新补丁的数量。
初步检查-互联网上的专用服务器
由于服务器可以在Internet上直接访问,所以检查Windows防火墙是否提供了主动保护总是一个好主意。唯一需要检查的例外情况是:
- 核心网络
- 远程桌面(如果远程访问)
- 安全万维网服务(HTTPS)
- 万维网服务(HTTP)
然后,最好运行一轮Windows更新,以确保所有软件都是最新的补丁、补丁和文档。欧宝官网下载app
作为准备工作的最后一步,为了删除现有Windows发行版或IIS配置中任何潜在的冲突参数,我们建议您卸载Windows服务器中的Web角色(如果以前安装过)。
安装PHP -只需点击几下即可
现在,我们可以在一个简单的操作中安装IIS和PHP。
PHP不是Windows Server 2008发行版的一部分,因此我们需要首先安装微软Web平台安装程序2.0,在下面的部分中称为Web PI。
Web PI负责安装在任何Windows/IIS系统上执行PHP所需的所有依赖项。因此,它为Web服务器部署了最少的角色服务的IIS,也为PHP运行时提供了最少的选项。
微软Web平台安装程序2.0的安装包含一个配置分析器,检查现有模块,建议任何必要的模块升级,甚至允许您beta测试微软Web平台未发布的扩展。
Web PI 2.0提供了一键安装PHP运行时。选择安装PHP的“非线程安全”Win32实现,它与iis7和FastCGI最相关联。它还提供了最近测试的运行时,请参见5.2.11。要找到它,只需选择左边的“Frameworks and Runtimes”选项卡:
在选择PHP之后,Web PI 2.0自动选择服务所需的所有依赖项. php
web页面存储在服务器上,包括最小的iis7.0角色服务:
接下来,点击“安装”,然后点击“我接受”按钮。IIS组件的安装将同时开始,同时下载PHP运行时更新了一些模块(例如IIS 7.0 FastCGI的更新)。
最后,PHP安装程序执行,几分钟后,应该会显示:
点击“完成”。
Windows Server现在正在监听并能够在端口80上回答问题。
让我们在浏览器中检查一下:
现在,为了检查PHP是否已正确安装,并可从IIS获得,我们创建一个小的phpinfo.php
将由默认web服务器在端口80上访问的文件C: \ inetpub \ wwwroot
.
在这样做之前,确保在Windows资源管理器中,我们可以看到文件的正确扩展名。选择“取消隐藏已知文件类型的扩展名”。
打开Windows资源管理器,转到C: \ inetpub \ wwwroot
.右键单击,选择“新建文本文档”。将其重命名为phpinfo.php
并复制通常的函数调用:
接下来,重新打开web浏览器,并放置/ phpinfo.php
在服务器URL的末尾:
最后,为了确保symfony安装没有任何问题,请ob娱乐下载下载http://sf-to.org/1.3/check.php.
复制到相同的目录phpinfo.php
(C: \ inetpub \ wwwroot
),并重命名为check_configuration.php
如果有必要的话)。
最后,最后一次重新打开浏览器,然后放/ check_configuration.php
在服务器URL的末尾:
从命令行界面执行PHP
为了以后使用symfony执行命令行任务,我们需要确保PHP.EXE可以从命令提示符访问并正确执行。ob娱乐下载
打开命令提示符C: \ inetpub \ wwwroot
和类型
PHP phpinfo.php
应该会出现以下错误消息:
如果我们什么都不做,PHP.EXE的执行将挂起MSVCR71.DLL的缺席。因此,我们必须找到DLL文件并将其安装在正确的位置。
这MSVCR71.DLL
是微软Visual c++运行时的旧版本,可以追溯到2003年的时代。它包含在. net Framework 1.1可重分发包中。
.Net Framework 1.1可重分发包,可在MSDN
我们正在寻找的文件安装在以下目录:C:\Windows\ Microsoft.NET \ Framework \ v1.1.4322
只要复制MSVCR71.DLL
文件传送至以下目的地:
- 在x64系统上:
C: \ windows \ syswow64
目录 - 在x86系统上:
C: \ windows \ system32系统
目录
我们现在可以卸载。net Framework 1.1了。
PHP.EXE可执行文件现在可以从命令提示符运行而不会出现错误。例如:
PHP phpinfo.php PHP check_configuration.php
稍后,我们将验证symfony . bat(来自Sob娱乐下载andbox发行版)也会给出预期的响应,这是symfony命令的语法。
ob娱乐下载Symfony沙盒安装和使用
下面这段话摘自《symfony入门》,ob娱乐下载“沙盒”: page:“沙盒是一个非常容易安装的预打包symfony项目,已经配置了一些合理的默认值。ob娱乐下载这是一种很好的方法来练习使用symfony,而不需要遵守web最佳实践的ob娱乐下载正确安装。”
沙箱被预先配置为使用SQLite作为数据库引擎。在Windows上,没有什么特别需要安装的:SQLite支持直接在用于SQLite的PDO PHP扩展中实现,该扩展在安装PHP时安装。在前面通过Microsoft Web PI安装PHP运行时,我们已经完成了这一点。
只需检查PHP.INI文件中是否正确引用了SQLite扩展名,该文件位于C:\Program Files (x86)\PHP
目录,实现PDO支持SQLite的DLL被设置为C:\Program Files (x86)\PHP\ext\ php_pdo_sqlite.dll
.
下载,创建目录,复制所有文件
symfob娱乐下载ony沙盒项目已经“准备好安装和运行”,并在一个. zip
档案。
下载存档并将其解压到一个临时位置,例如“downloads”目录,该目录可用于在C:\Users\管理员
目录中。
为沙盒的最终目标创建一个目录,例如F: \开发\ sfsandbox
:
选择所有文件-ctrl - a
在Windows资源管理器中-从您的下载位置(源),并将它们复制到F: \开发\ sfsandbox
目录中。
您应该看到2599项复制到目标目录:
执行测试
打开命令提示符。改变F: \开发\ sfsandbox
执行如下命令:
PHP ob娱乐下载symfony -V
这应该返回:
ob娱乐下载symfony 1.3.0 (F:\dev\sfsandbox\lib\symfony)
在相同的命令提示符中执行:
ob娱乐下载SYMFONY.BAT - v
这将返回相同的结果:
ob娱乐下载symfony 1.3.0 (F:\dev\sfsandbox\lib\symfony)
Web应用程序创建
要在本地服务器上创建web应用程序,我们使用IIS7管理器,这是用于所有IIS相关活动的图形用户界面控制面板。从该UI触发的所有操作实际上都是通过命令行界面在幕后执行的。
可以从“程序”、“管理工具”、“Internet信息服务器(IIS)管理器”的“开始菜单”中访问IIS管理器控制台。
重新配置“默认网站”,使其不影响端口80
我们希望确保只有我们的symfony沙盒在端口80 (HTTP)ob娱乐下载上响应。为此,将现有的“默认网站”端口更改为8080。
请注意,如果Windows防火墙处于活动状态,您可能必须为端口8080创建一个例外,以便仍然能够到达“默认网站”。为此,打开Windows控制面板,选择Windows防火墙,点击“允许一个程序通过Windows防火墙”,然后点击“添加端口”来创建例外。选中复选框以在创建后启用它。
为沙盒添加一个新的网站
从管理工具中打开IIS管理器。在左侧窗格中,选择“Sites”图标,然后右键单击。从弹出菜单中选择“添加网站”。例如,输入“Symfony Sandbox”ob娱乐下载作为站点名称,D: \开发\ sfsandbox
为物理路径,其他字段保持不变。你应该看到这个对话框:
单击OK。如果一个小x
出现在网站图标上(在功能视图/网站),不要犹豫,点击右边窗格上的“重新启动”使其消失。
检查网站是否有应答
从IIS管理器中选择“Symfony Sandbox”站点,ob娱乐下载然后在右侧窗格中单击“Browse *.80”(http)”。
你应该得到一个明确的错误消息,这不是意外的:HTTP错误403.14 -禁止
.Web服务器被配置为不列出此目录的内容。
这源于默认的web服务器配置,它指定不应该列出该目录的内容。因为没有默认文件之类的index . php
或index . html
存在于D: \开发\ sfsandbox
,服务器正确返回“Forbidden”错误消息。不要害怕。
类型http://localhost/web
在浏览器的URL栏中,而不是http://localhost
.你现在应该看到你的浏览器,默认的Internet Explorer,显示“Symfony Project Created”:ob娱乐下载
顺便说一下,你可能会在顶部看到一个浅黄色的带,上面写着“内部网设置现在默认关闭”。内网设置不如Internet设置安全。单击查看选项。不要害怕这个信息。
要永久关闭它,只需右键单击黄色带,并选择适当的选项。
此屏幕确认默认值index . php
页面已正确加载D: \开发\ sfsandbox \ web \ index . php
,正确执行,并且symfony库配置正确。ob娱乐下载
在开始使用symfony沙盒之前,我们需要执行最后一项任务:通过导入URL重写规则配置前端web页面。ob娱乐下载这些规则实现为. htaccess
只需在IIS管理器中单击几下即可控制。
沙盒:Web前端配置
我们希望配置沙盒应用程序前端,以便开始使用真正的symfony。ob娱乐下载默认情况下,当从本地机器请求时,前端页面可以到达并正确执行本地主机
名称或127.0.0.1
地址)。
让我们探索“配置”,“日志”和“定时器”web调试面板,以确保沙盒在Windows Server 2008上完全正常。
虽然我们可以尝试从Internet或远程IP地址请求沙盒应用程序,但沙盒主要被设计为在本地机器上学习symfony框架的工具。ob娱乐下载因此,我们将在最后一节中介绍与远程访问相关的细节:项目:web前端配置。
创建一个新的symfony项目ob娱乐下载
为实际开发目的创建syob娱乐下载mfony项目环境几乎与安装沙盒一样简单。我们将以简化的过程看到整个安装过程,因为它相当于沙盒的安装和部署。
不同之处在于,在这个“项目”部分中,我们将重点关注web应用程序的配置,以使其在Internet上的任何地方都能工作。
与沙盒一样,symfony项目预先配置为使用ob娱乐下载SQLite作为数据库引擎。在本章前面已经安装和配置了。
下载,创建目录并复制文件
symfony的每个版本都可以作ob娱乐下载为.zip文件下载,然后用于从头开始创建项目。
从。下载包含该库的存档ob娱乐下载symfony的网站.接下来,将包含的目录解压缩到一个临时位置,例如“downloads”目录。
现在我们需要为项目的最终目标创建一个目录树。这比沙盒要复杂一些。
目录树设置
让我们为项目创建一个目录树。从体积根开始,D:
例如。
创建一个\开发
目录D:
,并创建另一个名为sfproject
:
D: MD dev CD dev MD sfproject CD sfproject
我们现在在:D: \开发\ sfproject
对象创建子目录树自由
,供应商
而且ob娱乐下载
级联目录:
MD lib CD lib MD vendor CD vendor MD ob娱乐下载symfony CD symfony
我们现在在:D: \开发\ sfproject \ lib \供应商ob娱乐下载\ symfony
选择所有文件(ctrl - a
在Windows资源管理器中)从您的下载位置(源),并从“下载”复制到D: \开发\ sfproject \ lib \供应商ob娱乐下载\ symfony
.您应该看到3819个条目复制到目标目录:
创建和初始化
打开命令提示符。改为D: \开发\ sfproject
目录,执行以下命令:
PHP lib\vendor\ob娱乐下载symfony\data\bin\symfony
这应该返回:
ob娱乐下载symfony 1.3.0版本(D:\dev\sfproject\lib\vendor\symfony\lib)
要初始化项目,只需运行下面的PHP命令行:
PHP lib\vendor\ob娱乐下载symfony\data\bin\symfony生成项目sfproject
这应该返回一个文件操作列表,包括一些chmod 777
命令:
仍然在命令提示符中,运行以下命令创建symfony应用程序:ob娱乐下载
PHP lib\vendor\ob娱乐下载symfony\data\bin\symfony生成:应用sfapp
同样,这应该返回一个文件操作列表,包括一些chmod 777
命令。
从这一点开始,而不是打字PHP lib \供应商\ sob娱乐下载ymfony \ \ bin \ symfony的数据
每次需要时,复制ob娱乐下载symfony.bat
文件来源:
复制lib \供应商\ symfob娱乐下载ony \ \ bin \ symfony.bat数据
现在我们有了一个可以在命令行提示符下运行的方便命令D: \开发\ sfproject
.
还在D: \开发\ sfproject
,我们可以运行现在的经典命令:
ob娱乐下载symfony - v
要得到经典的答案:
ob娱乐下载symfony 1.3.0版本(D:\dev\sfproject\lib\vendor\symfony\lib)
Web应用程序创建
在以下几行中,我们假设您已经阅读了重新配置“默认网站”的“沙盒:Web应用程序创建”的初步步骤,这样它就不会干扰端口80。
为项目添加一个新的Web站点
从管理工具中打开IIS管理器。在左侧窗格中,选择“Sites”图标,然后右键单击。从弹出菜单中选择“添加网站”。例如,输入“Symfony Project”ob娱乐下载作为站点名称,D: \开发\ sfproject
为“物理路径”,其他字段保持不变;你应该看到这个对话框:
单击OK。如果一个小x
出现在网站图标上(在功能视图/网站),不要犹豫,点击右边窗格上的“重新启动”使其消失。
检查网站是否有应答
从IIS管理器中选择“Symfony项目”站点,并在右侧窗格ob娱乐下载中单击“浏览*.80”(http)”。
你应该得到与你在尝试沙盒时相同的显式错误消息:
HTTP错误403.14 -禁止
Web服务器被配置为不列出此目录的内容。
类型http://localhost/web
你现在应该看到“Symfony Project Created”页面,但与沙盒初始化的相同页面略有不同:没有图ob娱乐下载像:
图片暂时不在这里,尽管它们位于一个科幻小说
symfony库中的目录。ob娱乐下载很容易把它们联系起来/网络
目录中添加一个虚拟目录/网络
,名叫科幻小说
,并指向D: \开发\ sfproject \ lib \供应商ob娱乐下载\ symfony \ \ web \科幻的数据
.
现在我们有了常规的“Symfony Projectob娱乐下载 Created”页面,图片如预期的那样:
最后,整个symfony应用程序都在工作。ob娱乐下载在web浏览器中输入web应用程序的URL。http://localhost/web/sfapp_dev.php
:
让我们在本地模式下执行最后一个测试:检查“配置”,“日志”和“定时器”web调试面板,以确保项目功能齐全。
internet就绪应用程序的应用程序配置
我们的通用symfonyob娱乐下载项目现在在本地工作,就像沙盒,从本地主机服务器,位于http://localhost
或http://127.0.0.1
.
现在,我们希望能够从Internet访问应用程序。
项目的默认配置保护应用程序不会从远程位置执行,但是,实际上应该可以同时访问index . php
而且sfapp_dev.php
文件。让我们从web浏览器中执行项目,使用服务器的外部IP地址(例如。94.125.163.150
)和我们的虚拟专用服务器的FQDN(例如:12543 hpv163150.ikoula.com
).您甚至可以从服务器内部使用这两个地址,因为它们没有映射到127.0.0.1
:
就像我们之前说的,获取index . php
而且sfapp_dev.php
从一个遥远的位置是可以的。执行sfapp_dev.php
,但是会失败,因为默认情况下不允许。这可以防止潜在的恶意用户访问您的开发环境,其中包含有关项目的潜在敏感信息。您可以编辑sfapp_dev.php
文件使其工作,但这是强烈反对的。
最后,我们可以通过编辑“hosts”文件来模拟真实的域。
该文件执行本地FQDN名称解析,无需在Windows上安装DNS服务。DNS服务适用于所有版本的Windows Server 2008 R2,也适用于Windows Server 2008标准版、企业版和数据中心版。
在Windows x64操作系统中,“hosts”文件默认位于:C:\Windows\SysWOW64\Drivers\etc
“hosts”文件是预先填充的,以使机器进行解析本地主机
来127.0.0.1
IPv4协议,以及::1
在IPv6。
我们来加个假域名,比如sfwebapp.local
,并进行局部解析。
您的symob娱乐下载fony项目现在在没有DNS的情况下,从Web服务器内执行的Web浏览器会话运行在Web上。
本作品在创作共用署名相似共享3.0未移植许可许可下获得许可。