介绍
Symfony 是一个全套的开源 PHP 框架,它以其独立的组件而闻名,可以很容易地集成到任何其他 PHP 项目中。
在本教程中,我们将看到如何在Ubuntu 14.04上安装,配置和开始使用Symfony 2应用程序。
<$>[注] 这是一个开发的设置,旨在让您熟悉Symfony,并让您开始撰写您的第一个Symfony项目。
前提条件
对于这个教程,你将需要:
- 一个 Ubuntu 14.04 服务器
- 一个 sudo 非根用户,您可以通过遵循 初始服务器设置教程
步骤1:安装PHP
在我们开始之前,我们需要为命令行环境安装PHP,没有必要安装一个全功能的Web服务器,如Apache或Nginx,因为Symfony配有一个控制台命令,使运行和管理PHP的内置Web服务器在开发应用程序时变得微不足道。
首先,让我们更新包管理器缓存:
1sudo apt-get update
现在,为了通过命令行使用和执行PHP脚本,安装php5-cli
包。
1sudo apt-get install php5-cli
您现在应该在您的服务器上安装 PHP. 要检查是否成功安装,请运行:
1php -v
你应该得到类似于此的输出:
1[secondary_label Output]
2PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul 2 2015 15:23:08)
3Copyright (c) 1997-2014 The PHP Group
4Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
5with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
步骤 2 — 在 php.ini 中配置 date.timezone
Symfony 需要在您的php.ini 文件中设置 date.timezone
选项. 如果您在新服务器上测试本教程,此选项尚未定义。
我们需要编辑服务器的php.ini文件,以确保我们有这个选项定义。
使用 nano 或您最喜欢的命令行编辑器打开 php.ini
文件:
1sudo nano /etc/php5/cli/php.ini
搜索包含 date.timezone
的行. 通过在行开始时删除 ;
标志来消除指令,并为您的应用程序添加适当的时区。
1[label Modified php.ini]
2[Date]
3; Defines the default timezone used by the date functions
4; http://php.net/date.timezone
5date.timezone = Europe/Amsterdam
保存文件和退出。
步骤 3 – 获取 Symfony 安装程序
创建新的Symfony项目最简单的方法是使用官方Symfony安装程序,这是一个简单的脚本,旨在促进新的Symfony应用程序的启动。
以下命令将下载 Symfony 安装程序并将其放置在您的 /usr/local/bin
路径上:
1sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony
现在,您需要使用以下命令来执行脚本:
1sudo chmod a+x /usr/local/bin/symfony
要测试 Symfony 安装程序,运行:
1symfony
输出应该是这样的:
1[secondary_label Output]
2
3 Symfony Installer (1.1.7)
4 =========================
5
6 This is the official installer to start new projects based on the
7 Symfony full-stack framework.
8
9 To create a new project called blog in the current directory using
10 the latest stable version of Symfony, execute the following command:
11
12 symfony new blog
13
14. . .
步骤 4 – 创建一个新的交响乐项目
现在我们有Symfony安装程序,我们可以继续创建一个新的Symfony项目. 因为这是一个开发设置,我们将使用PHP的内置Web服务器,您可以继续在您的家庭目录中创建项目. 对于这个例子,我们将创建一个名为myproject
的项目,但您可以在下一个命令中使用自己的项目名称。
1cd ~
2symfony new myproject
这将创建一个新的文件夹myproject
在您的主目录中,包含一个全新的Symfony应用程序。
1[secondary_label Output]
2
3 Downloading Symfony...
4
5 Preparing project...
6
7 ✔ Symfony 2.7.3 was successfully installed. Now you can:
8
9 * Change your current directory to /home/sammy/myproject
10
11 * Configure your application in app/config/parameters.yml file.
12
13 * Run your application:
14 1. Execute the php app/console server:run command.
15 2. Browse to the http://localhost:8000 URL.
16
17 * Read the documentation at http://symfony.com/doc
步骤 5 – 使用 Symfony Console 运行应用程序
配备PHP的内置Web服务器(自PHP 5.4 以来)适用于在开发过程中运行PHP应用程序,用于测试或演示,它允许更无摩擦的体验,因为您不必打扰配置像Apache或Nginx这样的全功能Web服务器。
Symfony 配备了一个控制台命令,可方便启动/停止 PHP 的内置 Web 服务器,还允许您(自 Symfony 2.6 以来)在背景中运行 Web 服务器。
Symfony 控制台是一个 CLI 脚本,它有几个命令来帮助您构建和测试您的应用程序. 您甚至可以(包括自己的命令)(http://symfony.com/doc/current/cookbook/console/console_command.html)用 PHP 编写!
但是,Symfony命令使用的默认设置只会接受在端口8000
上的localhost
连接. 如果您在外部开发 / 测试服务器或本地虚拟机上遵循本教程,则需要为命令提供额外的参数,告诉Web服务器听取不同的IP地址。
若要允许来自内部和外部网络的连接,请从项目目录内部运行此命令:
1php app/console server:run 0.0.0.0:8000
1[secondary_label Output]
2Server running on http://0.0.0.0:8000
3
4Quit the server with CONTROL-C.
这将启动PHP的内置Web服务器,在端口8000
上听取所有网络接口。
现在你应该能够访问该应用程序,如果你将你的浏览器指向http://your_server_ip:8000
。
该命令将继续在活跃的终端中运行,直到您用CTRL+C
结束执行。
1php app/console server:start 0.0.0.0:8000
1[secondary_label Output]
2Web server listening on http://0.0.0.0:8000
这将使 Web 服务器在后台运行,让您的终端会话免费执行其他命令。
1php app/console server:stop 0.0.0.0:8000
1[secondary_label Output]
2Stopped the web server listening on http://0.0.0.0:8000
您也可以通过以下方式检查 Web 服务器的状态:
1php app/console server:status 0.0.0.0:8000
当服务器不运行时,这就是你应该得到的输出:
1[secondary_label Output]
2No web server is listening on http://0.0.0.0:8000
当在指定的 IP 和端口中运行一个活跃的服务器时,您应该得到这样的输出:
1[secondary_label Output]
2Web server still listening on http://0.0.0.0:8000
请记住,服务器:停止
和服务器:状态
的命令应该包含您在启动服务器时使用的IPADDRESS:PORT
部分。
结论
Symfony 是一个全套的 PHP 框架,适用于构建任何尺寸的应用程序. 在本教程中,我们看到如何安装并开始使用 Symfony 2 在新的 Ubuntu 14.04 服务器上使用 PHP 内置的 Web 服务器来运行该应用程序。