介绍
Symfony 是一个全栈的开源 PHP 框架。 它以其独立组件而闻名,可以轻松集成到任何其他 PHP 项目中。 Symfony 框架适用于构建任何规模的 PHP 应用程序,包括仅在命令行上运行的控制台应用程序。
在本教程中,我们将了解如何在 Ubuntu 14.04 上安装、配置和开始使用 Symfony 2 应用程序。
这是一个 development 设置,旨在让您熟悉 Symfony 并帮助您开始编写您的第一个 Symfony 项目。 我们将引导您完成全新 Symfony 项目的设置和安装。
先决条件
对于本教程,您将需要:
- 一台 Ubuntu 14.04 服务器
- 一个sudo非root用户,可以按照初始服务器设置教程进行设置
第 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:stop
和 server:status
命令应该包含您在使用 server:start
启动服务器时使用的相同 IPADDRESS:PORT
部分。
结论
Symfony 是一个全栈 PHP 框架,适用于构建任何规模的应用程序。 在本教程中,我们看到了如何在全新的 Ubuntu 14.04 服务器上安装并开始使用 Symfony 2,使用 PHP 的内置 Web 服务器来运行应用程序。 有关如何使用 Symfony 构建 PHP 应用程序的更多信息,请查看他们的 官方文档 。