状态: 已弃用
本文介绍了不再受支持的 Ubuntu 版本。 如果您当前正在运行运行 Ubuntu 12.04 的服务器,我们强烈建议您升级或迁移到受支持的 Ubuntu 版本:
原因: Ubuntu 12.04 已于 2017 年 4 月 28 日终止生命周期 (EOL) and no longer receives security patches or updates. This guide is no longer maintained.
请参阅:
本指南可能仍可用作参考,但可能不适用于其他 Ubuntu 版本。 如果可用,我们强烈建议使用为您正在使用的 Ubuntu 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。
介绍
Symfony 是一个开源的 PHP Web 开发框架 - 一组工具和方法来帮助您构建出色的应用程序。 这个框架的一些特点是它的速度、灵活性、可扩展性和稳定性。 您可以将它用于完整的 Web 应用程序,也可以用于项目所需的较小功能。
除了作为一个完整的堆栈框架之外,Symfony 还是一组 组件,您可以单独安装和使用它们。 这些组件是框架的基础,但它们也可以相互分离使用。 您可以使用 Composer 来安装组件。
此外,Symfony2 以发行版的形式出现。 这些是捆绑包、组件和配置包,可以帮助您快速入门。 Symfony 人推荐 标准版 作为最容易开始新项目的版本。 它包含最常见的捆绑包并具有简单的配置系统。
在本教程中,我们将了解如何安装此发行版并开始使用它。 为此,假设您正在运行 自己的 Ubuntu VPS,具有 sudo 权限和终端访问权限。 此外,您需要有一个网络服务器,最好是 LAMP 堆栈(Linux、Apache、MySQL 和 PHP),但您也可以使用 Nginx 对其进行配置。 您将需要 PHP 5.3.3 或更高版本。
安装
您可以通过两种主要方式安装此发行版。 您可以 下载 并将存档解压缩到项目文件夹中,或者使用 Composer。 在本教程中,我们将使用第一个选项并将 Symfony 直接下载到我们的 Web 服务器的根文件夹中:/var/www。 原因是存档中的所有文件都位于一个名为 Symfony 的文件夹中,因此无需创建另一个文件夹。 导航到 /var/www 并下载存档:
cd /var/www wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.3.3.tgz
您可以在 Symfony 下载页面 上获得所需版本的链接。 下载完成后,您必须解压缩存档(它可能以奇怪的名称下载,但没关系):
tar -zxvf download?v=Symfony_Standard_Vendors_2.3.3.tgz
现在您应该得到一个名为 Symfony 的新文件夹,其中包含所有文件。 如果您想要清洁,您也可以从您的 VPS 中删除 tar 文件。
权限
您需要调整几个文件和文件夹的权限。 您需要使这些内容可由您的网络服务器写入。 如果您使用的是 Apache,则此用户是 www-data 组中的 www-data。 因此,从终端(在主应用程序文件夹中)运行以下命令来更改这些文件和文件夹的所有权:
chown -R root:www-data app/cache chown -R root:www-data app/logs chown -R root:www-data app/config/parameters.yml
这使得它们(以及所有内部)归 root 用户和 www-data 组所有。 现在让我们确保组用户也可以在这些文件夹中写入:
chmod -R 775 app/cache chmod -R 775 app/logs chmod -R 775 app/config/parameters.yml
服务器配置
接下来,您应该检查服务器配置以确保一切正常。 Symfony2 在以下 url 有一个测试器:
http://www.example.com/Symfony/web/config.php
如果您遇到以下错误:“此脚本只能从 localhost 访问”,这意味着您正在尝试远程访问该文件。 如果您使用的是 DigitalOcean VPS,就会出现这种情况。 因此,让我们对其进行配置以允许您远程访问它。
打开新下载的应用程序的 /web 文件夹中的 config.php 文件。 找到以下块:
if (!in_array(@$_SERVER['REMOTE_ADDR'], array( '127.0.0.1', '::1', ))) {
在这里,您需要使用您希望 Symfony 允许访问的 IP 添加一个新的数组值。 您可以使用 Google 检查您正在操作的 IP 并将其添加到数组中,如下所示:
if (!in_array(@$_SERVER['REMOTE_ADDR'], array( '127.0.0.1', '::1', 'YOUR IP', ))) {
现在您应该可以远程在浏览器中看到配置测试器了。 尝试按照那里提供的说明配置您的 VPS 以最适合 Symfony。 一旦您修复了测试人员指出的主要问题,您可以单击“绕过配置并转到欢迎页面”按钮访问您的新 Symfony2 应用程序主页。
如果您收到以下错误:“ 您无权访问此文件。 检查 app_dev.php 了解更多信息 ",您需要打开 app_dev.php 文件中 /网络应用程序的文件夹并注释掉以下代码块:
if (isset($_SERVER['HTTP_CLIENT_IP']) || isset($_SERVER['HTTP_X_FORWARDED_FOR']) || !in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', 'fe80::1', '::1')) ) { header('HTTP/1.0 403 Forbidden'); exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.'); }
保存文件并退出。 现在刷新页面,您应该会看到 Symfony2 应用程序的欢迎页面。
一些全局配置
在我们刚刚创建的应用程序的欢迎页面上,您可以单击配置按钮在浏览器中完成配置向导。 在第一页上,您可以设置数据库连接。 在那里,您会注意到可以使用的各种驱动程序:MySQL、SQLite、PosgreSQL、Oracle 等。 指定连接信息后,您可以单击“下一步”并生成全局密钥字符串以防止 CSRF。
如果在此之后单击下一步,您提供的信息将写入位于 app/config 文件夹中的 parameters.yml 文件。 如果您按照本教程前面的步骤并为此文件设置了正确的权限,您应该可以继续。 如果没有,您也可以将那里提供的代码复制并粘贴到文件本身中。
供应商/依赖项
Symfony 项目依赖于一些外部库。 您可以在项目的 /vendor 文件夹中找到它们,并由名为 Composer 的 PHP 依赖项管理器下载和管理。 您可以参考本教程了解如何使用Composer了解更多信息。
注意:当您运行 php composer.phar install 或 php composer.phar update 命令时,Composer 将清除缓存并安装资产。 此外,它会将权限更改回 app/cache 文件夹,因此请确保在设置正确权限并使文件夹可被 VPS 写入时重做之前的步骤。
结论
在本教程中,我们看到了如何安装 Symfony2 PHP 框架的分发版以及如何对其执行一些初始配置。 在下一个教程中,我们将介绍一些有关 Symfony 应用程序如何工作的概念。