Symfony2的安装和配置

本章将说明如何上手Symfony来搭建Web应用。Symfony官方提供了预先配置好的“发行版”,包含供开发者借鉴的示例代码,。

小技巧

如果你想了解如何创建新的Symfony2项目,并对代码进行版本管理,请阅读: 代码版本管理

下载Symfony2的发行版

小技巧

首先,请确认你安装了Web服务器(如Apache),以及5.3.2以上版本的PHP。更多关于Symfony运行条件的细节,请参考:《 Symfony2的运行条件 》。你可以访问 ApacheNginx 的官方网站来了解如何配置站点的根目录。

Symfony2有不同的“发行版”供你选择,但它们都包含了:基于Symfony2框架的应用程序,一些有用的第三方代码包,推荐的文件目录结构以及默认的配置。下载一个Symfony2的发行版,相当于得到了一个可以立即运行的代码骨架,有了这个基础,你可以快速开发你自己的应用。

你可以访问Symfony2的下载页面来获得Symfony2的发行版: http://symfony.com/download 。你有两个选项:

  • 下载 .tgz 或者 .zip 文件。这两种格式的文件所包含的内容是一致的,你可以任意选择。
  • 下载不包含第三方代码的发行版。如果你的电脑上安装了 Git ,建议你下载这个版本。因为Symfony2提供了通过Git来管理第三方代码的便利,可以更灵活地实现定制。

把下载下来的压缩包,解压到你本地的站点根目录。如果使用UNIX命令行,你可以输入以下命令(注意将 ### 替换为实际的文件名):

# .tgz 文件
tar zxvf Symfony_Standard_Vendors_2.0.###.tgz

# .zip 文件
unzip Symfony_Standard_Vendors_2.0.###.zip

解压后的 Symfony/ 目录内容如下:

www/ <- 你的站点根目录
    Symfony/ <- 压缩包里的Symfony目录
        app/
            cache/
            config/
            logs/
        src/
            ...
        vendor/
            ...
        web/
            app.php
            ...

升级第三方代码

如果你下载的是不包含第三方代码的版本,你可以通过下面的命令来完成安装:

php bin/vendors install

这个命令将在 vendor/ 目录里安装第三方代码(包括Symfony框架本身的核心库文件)。要了解Symfony2是如何管理第三方代码的,请阅读:《 Managing Vendor Libraries with bin/vendors and deps 》。

配置与安装

完成上一步骤,所有必须的第三方代码都应该已经保存在 vendor/ 目录里了。另外,在 app/ 里,有一个Web应用的常规配置, src/ 里则有一套示例代码。

Symfony2自带一个服务器运行环境的检测脚本,用来确保你的服务器和PHP的参数是正确的。你可以通过下面的地址来访问这个页面:

http://localhost/Symfony/web/config.php

如果有问题,请修正。

好了,所有的问题都解决了,点击”Go to the Welcome page”来访问Symfony的欢迎页吧:

http://localhost/Symfony/web/app_dev.php/

Symfony2这时应该会向你打招呼,辛苦了!

../_images/welcome.jpg

进行开发

你的Symfony2应用程序运行起来了,你可以进行开发了!你的发行版可能包含了一些示例代码,你可以阅读 README.rst 文件来确认哪些代码被包含在你所使用的发行版里,并了解如何在不需要的时候移除它们。

如果你刚接触Symfony,《 Creating Pages in Symfony2 》将向你介绍如何在你新建的Web应用里基于Symfony来创建页面,修改配置等等。

代码版本管理

如果你打算用 Git 或者 Subversion 来管理你的代码,你可以照常操作,并将Symfony2的标准发行版作为你项目的起点。

要了解如何更好地用Git来管理你的Symfony项目,请阅读: How to Create and store a Symfony2 Project in git

忽略 vendor/ 目录

如果你使用的是不包含第三方代码的发行版,或者你了解如何使用Symfony2自带的脚本通过Git来管理代码依赖,你可以在 .gitignore 文件里忽略 vendor/ 目录:

vendor/

这样,你的vendor目录不会被提交到Git。其他人如果需要参与项目,他只需要检出相对少很多的文件,并通过 php bin/vendors install 命令来下载必须的第三方代码。