如何在Ubuntu14.04上安装并开始使用Symfony2

来自菜鸟教程
跳转至:导航、​搜索

介绍

Symfony 是一个全栈的开源 PHP 框架。 它以其独立组件而闻名,可以轻松集成到任何其他 PHP 项目中。 Symfony 框架适用于构建任何规模的 PHP 应用程序,包括仅在命令行上运行的控制台应用程序。

在本教程中,我们将了解如何在 Ubuntu 14.04 上安装、配置和开始使用 Symfony 2 应用程序。

这是一个 development 设置,旨在让您熟悉 Symfony 并帮助您开始编写您的第一个 Symfony 项目。 我们将引导您完成全新 Symfony 项目的设置和安装。


先决条件

对于本教程,您将需要:

第 1 步 — 安装 PHP

在开始之前,我们需要为命令行环境安装 PHP。 无需安装功能齐全的 Web 服务器,例如 Apache 或 Nginx,因为 Symfony 带有一个控制台命令,可以让您在开发应用程序时轻松运行和管理 PHP 的内置 Web 服务器。 这是在开发模式下运行应用程序的一种简单而有效的方式。

首先,让我们更新包管理器缓存:

sudo apt-get update

现在,为了通过命令行使用和执行 PHP 脚本,安装 php5-cli 包。

sudo apt-get install php5-cli

您现在应该在您的服务器上安装了 PHP。 要检查它是否安装成功,请运行:

php -v

你应该得到类似这样的输出:

OutputPHP 5.5.9-1ubuntu4.11 (cli) (built: Jul 2 2015 15:23:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

第 2 步 — 在 php.ini 中配置 date.timezone

Symfony 要求在 php.ini 文件中设置选项 date.timezone。 如果您在新服务器上测试本教程,则尚未定义此选项。 如果是这种情况,您的 Symfony 应用程序将无法运行。

我们需要编辑服务器的 php.ini 文件以确保我们定义了这个选项。 该文件应位于 /etc/php5/cli/php.ini

使用 nano 或您喜欢的命令行编辑器打开 php.ini 文件:

sudo nano /etc/php5/cli/php.ini

搜索包含 date.timezone 的行。 通过删除行首的 ; 符号来取消注释指令,并为您的应用程序添加适当的时区。 在此示例中,我们将使用 Europe/Amsterdam,但您可以选择任何 支持的时区

修改php.ini

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam

保存文件并退出。

第 3 步 — 获取 Symfony 安装程序

创建一个新的 Symfony 项目最简单的方法是使用官方的 Symfony 安装程序。 这是一个为促进新 Symfony 应用程序的引导而创建的简单脚本。

以下命令将下载 Symfony 安装程序并将其放在您的 /usr/local/bin 路径中:

sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony

现在,您需要使用以下命令使脚本可执行:

sudo chmod a+x /usr/local/bin/symfony

要测试 Symfony 安装程序,请运行:

symfony

输出应如下所示:

Output
 Symfony Installer (1.1.7)
 =========================

 This is the official installer to start new projects based on the
 Symfony full-stack framework.

 To create a new project called blog in the current directory using
 the latest stable version of Symfony, execute the following command:

   symfony new blog

. . .

第四步——创建一个新的 Symfony 项目

现在我们已经有了 Symfony 安装程序,我们可以继续并创建一个新的 Symfony 项目。 因为这是一个开发设置,我们将使用 PHP 的内置 Web 服务器,您可以继续在您的主目录中创建项目。 对于本示例,我们将创建一个名为“myproject”的项目,但您可以在下一个命令中使用您自己的项目名称。

cd ~
symfony new myproject

这将在你的主目录中创建一个新文件夹 myproject,其中包含一个全新的 Symfony 应用程序。 该命令将产生与此类似的输出:

Output
 Downloading Symfony...

 Preparing project...

 ✔  Symfony 2.7.3 was successfully installed. Now you can:

    * Change your current directory to /home/sammy/myproject

    * Configure your application in app/config/parameters.yml file.

    * Run your application:
        1. Execute the php app/console server:run command.
        2. Browse to the http://localhost:8000 URL.

    * Read the documentation at http://symfony.com/doc

第 5 步 — 使用 Symfony 控制台运行应用程序

PHP 附带的内置 Web 服务器(自 PHP 5.4 起)适用于在开发、测试或演示时运行 PHP 应用程序。 它可以实现更顺畅的体验,因为您无需费心配置像 Apache 或 Nginx 这样的全功能 Web 服务器。

Symfony 带有一个控制台命令,它有助于启动/停止 PHP 的内置 Web 服务器,还允许(从 Symfony 2.6 开始)在后台运行 Web 服务器。

Symfony 控制台是一个 CLI 脚本,它有几个命令来帮助你构建和测试你的应用程序。 你甚至可以包含你自己用PHP编写的命令

可以随时使用控制台命令 server:run 启动 Web 服务器。 但是,Symfony 命令使用的默认设置只接受端口 8000 上的 localhost 连接。 如果您在外部开发/测试服务器或本地虚拟机上遵循本教程,则需要为命令提供额外参数,告诉 Web 服务器侦听不同的 IP 地址。

要允许来自内部和外部网络的连接,请从项目目录中运行此命令:

php app/console server:run 0.0.0.0:8000
OutputServer running on http://0.0.0.0:8000

Quit the server with CONTROL-C.

这将启动 PHP 的内置 Web 服务器,监听端口 8000 上的所有网络接口。

现在,如果您将浏览器指向 http://your_server_ip:8000,您应该能够访问该应用程序。 你应该看到这样的页面:

该命令将继续在活动终端中运行,直到您使用 CTRL+C 终止它的执行。 要使 Web 服务器在后台运行,您应该使用 server:start 命令代替:

php app/console server:start 0.0.0.0:8000
OutputWeb server listening on http://0.0.0.0:8000

这将使 Web 服务器在后台运行,让您的终端会话可以自由执行其他命令。 要停止服务器,您应该使用:

php app/console server:stop 0.0.0.0:8000
OutputStopped the web server listening on http://0.0.0.0:8000

您还可以通过以下方式检查 Web 服务器的状态:

php app/console server:status 0.0.0.0:8000

当服务器未运行时,这是您应该得到的输出:

OutputNo web server is listening on http://0.0.0.0:8000

当在指定的 IP 和端口中运行活动服务器时,您应该得到如下输出:

OutputWeb server still listening on http://0.0.0.0:8000

请记住,server:stopserver:status 命令应该包含您在使用 server:start 启动服务器时使用的相同 IPADDRESS:PORT 部分。

结论

Symfony 是一个全栈 PHP 框架,适用于构建任何规模的应用程序。 在本教程中,我们看到了如何在全新的 Ubuntu 14.04 服务器上安装并开始使用 Symfony 2,使用 PHP 的内置 Web 服务器来运行应用程序。 有关如何使用 Symfony 构建 PHP 应用程序的更多信息,请查看他们的 官方文档