如何在Ubuntu12.04上安装和设置YiiPHP框架

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


状态: 已弃用

本文介绍了不再受支持的 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 版本编写的指南。 您可以使用页面顶部的搜索功能来查找更新的版本。


关于 Yii

Yii 是一个高性能的 PHP 面向对象框架,可帮助您快速构建 Web 应用程序。 它的设计方式让您可以专注于使您的应用程序与众不同的原因,同时它会处理更“无聊”的代码定义任务。 它遵循 MVC 模式,将逻辑与表示完全分离,并且具有相当多的安全执行功能。

Yii 通过让您自动为它生成框架、为您的数据库甚至 CRUD(创建、读取、更新、删除)相关代码生成模型,极大地促进了您的应用程序。 然后,您所要做的就是根据自己的喜好自定义所有内容,而无需编写任何应用程序所需的基础知识。 那么让我们看看如何安装它并开始使用 Yii 进行开发(是的,就是这样!)

本教程假设您已经在运行安装了 LAMP 的 Ubuntu VPS(但其他 Linux 发行版也可以使用)。 如果您可以按照这些教程中的步骤做好准备:

安装

要安装 Yii,您需要获取最新版本并将其解压缩到 Web 服务器的 Web 根目录中(如果您正在运行 Apache,可能是 /var/www)。 因此,让我们从 http://www.yiiframework.com/download/ 复制最新版本的 zip 文件的链接,然后运行以下命令将其下载到我们的 VPS:

wget http://yii.googlecode.com/files/yii-1.1.13.e9e4a0.zip

确保在安装时将此链接替换为最新版本之一。 接下来,运行以下命令解压缩框架:

unzip yii-1.1.13.e9e4a0.zip

确保将文件名替换为刚刚下载的文件名。 如果您的系统上没有安装 Unzip,请在尝试解压缩文件之前运行以下命令:

sudo apt-get install unzip

成功解压缩框架后,继续将文件夹重命名为更适合您的名称。 假设我们命名它

yii_framework:

mv yii-1.1.13.e9e4a0 yii_framework

确保将文件夹名称替换为您的案例所提取文件夹的名称。

要求

Yii 要求您的 VPS 安装 PHP 5.1 或更高版本,所以让我们使用 Yii 需求检查器来看看我们的立场。 将您的浏览器指向以下 url 以显示检查器:

http://example.com/yii_framework/requirements/index.php

确保在此处根据需要替换以指向 Yii 框架中的相应文件。 现在你应该看到 Requirement Checker 页面,如果一切顺利,结论应该是:“你的服务器配置满足 Yii 的最低要求。” 在这种情况下,您可以继续前进。

创建您的第一个应用程序

Yii 有一个非常强大的功能可以自动为你生成东西。 您的应用程序的框架就是这样的东西,所以让我们看看如何做到这一点。 导航到您希望生成应用程序的位置。 这也可以在您提取 Yii 框架的文件夹之外。 因此,让我们回到服务器的 Web 根目录并在那里进行操作:

cd /var/www

确定应用程序文件夹的名称(比如 mysite)并运行以下命令:

php yii_framework/framework/yiic webapp mysite

确保路径与您的环境相对应。 出现提示时选择 Yes,现在您的新应用程序位于 /var/www/mysite 下。

要对其进行测试,请将浏览器指向该文件夹:

http://example.com/mysite/index.php

您现在应该看到骨架应用程序的主页。 您已经创建了几个页面以及联系表格和登录/注销功能。 您可以使用以下凭据登录:

  • 用户名:管理员
  • 密码:管理员

这是您不需要自己创建的功能。

配置

由于我们使用的是 LAMP,我们没有太多需要配置的东西。 不过,您可能希望从 URL 结构中删除 index.php。 为此,请在应用程序 (mysite) 的根文件夹中创建一个 .htaccess 文件并粘贴以下代码:

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php

保存文件并退出。

注意:要在 Apache 中使用 .htaccess 功能,您'需要在您的 VPS 上启用 mod_rewrite。 要检查这一点,请运行以下命令:

apache2ctl -M

如果您在列表中看到 rewrite_module,那么您就可以开始了。 如果没有,请使用以下命令启用它:

a2enmod rewrite

然后,重新启动 Apache 以使更改生效:

sudo service apache2 restart

此外,通过在虚拟主机文件中将 AllowOverride 设置为 All 来确保启用您的 .htaccess 文件:

          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all

现在您还需要告诉应用程序您不再需要 URL 中的 index.php。 打开 protected/config 文件夹中的 main.php 文件并取消注释以下块:

/*
'urlManager'=>array(
  'urlFormat'=>'path',
  'rules'=>array(
    '/'=>'/view',
    '//'=>'/',
    '/'=>'/',
  ), 
),
*/

接下来,将以下内容添加到 urlManager 数组:

'showScriptName' => false

该块现在应该如下所示:

'urlManager'=>array(
  'urlFormat'=>'path',
  'showScriptName' => false,
  'rules'=>array(
    '/'=>'/view',
    '//'=>'/',
    '/'=>'/',
  ),            
),

保存文件并退出。 现在,如果您导航到新应用程序,您可以浏览页面,看到更清晰的 URL,并且结构中没有 index.php

框架应用程序默认连接到应用程序附带的 SQLite 数据库,但还包含用于连接到 MySQL 数据库的注释模板。 所以我们需要做的是注释掉第一个并取消注释后一个以及指定与我们自己的数据库相关的信息(我们将在下一个教程中创建)。 为此,请再次打开位于应用程序 protected/config 文件夹中的 main.php 文件并注释掉以下块:

'db'=>array(
  'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
),

并删除以下块周围的评论:

/*
'db'=>array(
  'connectionString' => 'mysql:host=localhost;dbname=testdrive',
  'emulatePrepare' => true,
  'username' => 'root',
  'password' => '',
  'charset' => 'utf8',
),
*/

在这里,我们现在可以将连接信息添加到我们将创建的数据库中。 我们将给它一个名称(db_tutorial)并指定用户名和密码来访问它。 您现在还可以使用此名称创建空数据库并填写所有内容,然后我们将在第 2 部分继续本教程。

文章提交者:Danny