介绍
Symfony是一个全栈,开源的PHP框架。 它的独立组件众所周知,可以轻松集成到任何其他PHP项目中。 Symfony框架适用于构建任何大小的PHP应用程序,包括仅在命令行上运行的控制台应用程序。
在本教程中,我们将了解如何在Ubuntu 14.04上安装,配置和开始使用Symfony 2应用程序。
这是一个开发的设置,旨在让你熟悉Symfony和你开始写你的第一个symfony项目。 我们将指导您完成一个全新的Symfony项目的设置和安装。
先决条件
对于本教程,您将需要:
- 一个Ubuntu 14.04服务器
- sudo的一个非root用户,您可以通过下面的设置初始服务器设置教程
第1步 - 安装PHP
在开始之前,我们需要为命令行环境安装PHP。 没有必要安装一个功能齐全的网络服务器,如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的要求选择date.timezone
在您设置php.ini
文件(S)。 如果您在新服务器上测试本教程,则此选项尚未定义。 如果是这样,你的Symfony应用程序将无法运行。
我们需要编辑服务器的php.ini
文件,以确保我们有定义这个选项。 该文件应位于/etc/php5/cli/php.ini
。
打开php.ini
使用纳米或您喜爱的命令行编辑器文件:
sudo nano /etc/php5/cli/php.ini
搜索包含行date.timezone
。 通过删除注释指令;
在该行的开始签字,并添加适当的时区为您的应用。 在这个例子中,我们将使用Europe/Amsterdam
,但你可以选择任何支持的时区 。
[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
. . .
第4步 - 创建一个新的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服务器(自PHP 5.4开始)适用于在开发,测试或演示期间运行PHP应用程序。 它可以实现更无摩擦的体验,因为您不需要烦恼配置全功能的Web服务器,如Apache或Nginx。
Symfony提供了一个控制台命令,方便了启动/停止PHP的内置Web服务器的过程,也允许(从Symfony 2.6开始)在后台运行Web服务器。
Symfony控制台是一个CLI脚本,它有几个命令来帮助您构建和测试应用程序。 你甚至可以包括你自己的命令用PHP写的!
Web服务器可以随时使用控制台命令来启动server:run
。 但是,使用的Symfony的命令将只接受连接的默认设置,以localhost
端口8000
。 如果您在外部开发/测试服务器或本地虚拟机上遵循本教程,则需要为命令提供一个额外的参数,告诉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
指令应包括相同IPADDRESS:PORT
您启动与服务器时使用部分server:start
。
结论
Symfony是一个全栈PHP框架,适合构建任何大小的应用程序。 在本教程中,我们看到了如何在一个全新的Ubuntu 14.04服务器上安装并开始使用Symfony 2,使用PHP的内置Web服务器来运行应用程序。 关于如何建立使用Symfony的PHP应用程序的更多信息,看看他们的官方文件 。