01. Yii 2.0 框架的安装

来源:互联网 发布:mysql优化方案 编辑:程序博客网 时间:2024/06/16 09:06
1. Yii 概述
Yii Framework 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架。

Yii 自带了丰富的功能 ,包括 MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间。

Yii 是纯面向对象的,基于组件的,用于开发大型 Web 应用的高性能 PHP 框架。从面向对象的角度来说,它比 TP 框架要好,但 TP 框架使用起来比 Yii 框架简单。


2. Yii 准备工作

Yii 2.0 对运行环境的要求:

需要 PHP 5.4.0 或以上版本

PHP 需要开启PDO的扩展(如果使用MySQL数据库,就开启php_pdo_mysql.dll)

缓存支持(memcache、redis或apc),安装相应的php扩展和对应的软件


3. 安装 Yii

你可以通过两种方式安装 Yii:使用 Composer 或下载一个归档文件。 推荐使用前者,这样只需执行一条简单的命令就可以安装新的扩展或更新 Yii 了。

3.1 通过 Composer 安装

如果你的系统还未安装 Composer,你就需要先安装 Composer,具体可参考 Composer 中文网

Composer 安装好后,切换到一个可通过 Web 访问的目录(如:E:\xampp\htdocs)

(使用 composer 安装软件包时,建议启用本镜像服务,来加快下载速度,启用本镜像服务的方法,可参考:http://pkg.phpcomposer.com/)
先运行下面的命令,来安装 Composer Asset 插件:
composer global require "fxp/composer-asset-plugin:^1.2.0"
安装完 Composer Asset 插件后,再来安装 Yii2 的基本应用程序模板(Yii 2.0 的基础版本 -> basic),运行下面的命令:
composer create-project yiisoft/yii2-app-basic basic 2.0.9
如果想要安装 Yii2 的高级应用程序模板(Yii 2.0 的高级版本 -> advanced就运行下面的命令:
composer create-project yiisoft/yii2-app-advanced advanced 2.0.9
注意:通过 composer 安装 Yii 2.0 的过程中,可能会提示你输入 GitHub 账户的授权 token,用于验证权限。故你必须要有一个 GitHub 账户,然后按照命令行的提示进入指定网页,生成token,将token输入到命令行中,继续安装。

3.2 从归档文件安装

下载以下归档文件之一,然后将其解压到一个Web服务器的根目录(如 E:\xampp\htdocs)

  • Yii2的基本应用程序模板
  • Yii2的高级应用程序模板
4. Yii 基础版和高级版的区别
基础版:即 Yii2 的基本应用程序模板(basic 版本),只有一个入口文件,是 basic/web 目录下的 index.php
高级版:即 Yii2 的高级应用程序模板(advanced 版本), 有两个入口文件(前台入口和后台入口),分别是 advanced/frontend/web 目录下的index.php 和 advanced/backend/web 目录下的index.php 

5. 设置cookieValidationKey
(仅 Yii 基础版需要设置)
修改 basic/config/web.php 文件,给 cookieValidationKey 配置项 添加一个密钥(若你通过 Composer 安装,则此步骤会自动完成):
// !!! 在下面设置一个密钥, 以供 cookie validation 的需要 
'cookieValidationKey' => md5('basic-2016'),
6. web服务器的虚拟主机配置
修改apache的虚拟主机配置文件(E:\xampp\apache\conf\extra\httpd-vhosts.conf)

NameVirtualHost *:80
########## Yii 2.0 基础版 ##########
<VirtualHost *:80>
    ServerName www.basic.com
    ServerAlias basic.com
    DocumentRoot "E:\xampp\htdocs\basic\web"
    ErrorLog "logs/basic.com-error.log"
    CustomLog "logs/basic.com-access.log" common
</VirtualHost>
########## Yii 2.0 基础版 ##########

########## Yii 2.0 高级版 ##########
<VirtualHost *:80>
    ServerName www.yii.frontend.com
    ServerAlias yii.frontend.com
    DocumentRoot "E:\xampp\htdocs\advanced\frontend\web"
    ErrorLog "logs/yii.frontend.com-error.log"
    CustomLog "logs/yii.frontend.com-access.log" common
</VirtualHost>
<VirtualHost *:80>
    ServerName www.yii.backend.com
    ServerAlias yii.backend.com
    DocumentRoot "E:\xampp\htdocs\advanced\backend\web"
    ErrorLog "logs/yii.backend.com-error.log"
    CustomLog "logs/yii.backend.com-access.log" common
</VirtualHost>
########## Yii 2.0 高级版 ##########

配置好虚拟主机后,请修改本机的host文件(设置IP和域名的映射关系),然后重启Apache,打开浏览器,输入:http://basic.com/
如果能正常打开Yii的提示页, 如提示 "Congratulations!",则说明 Yii 2.0 安装成功,且虚拟主机配置也成功了。

如果使用的是 Yii 2.0 的高级版,则需要先初始化 Yii 应用,初始化方法如下:
打开 cmd,切换至项目根目录(如 E:\xampp\htdocs\advanced),运行下面的命令:
php init 
出现一个选择提示:
[ 0 ]   Development 
[ 1 ]    Production
( 0 表示初始化为开发环境,1表示初始化为生产环境)
这里我们输入 0,即表示将 Yii 应用初始化为开发环境。
初始化完成之后,打开浏览器,输入:http://yii.frontend.com,可访问前台页面;输入:http://yii.backend.com,可访问后台登录界面。

7. 创建第一个控制器
基础版:
在 E:\xampp\htdocs\basic\controllers 目录下创建一个 IndexController.php 文件,内容如下:
<?php
namespace app\controllers;
use yii\web\Controller;

class IndexController extends Controller 
{
    public function actionIndex(){
        echo "欢迎使用 Yii2.0  基本应用!";
    }
}
在浏览器地址栏输入:http://basic.com/index.php?r=index/index,就可以访问对应控制器里的方法。

高级版:
在 E:\xampp\htdocs\advanced\backend\controllers 目录(后台控制器目录)下创建一个 IndexController.php 文件,内容如下:
<?php
namespace backend\controllers;
use yii\web\Controller;

class IndexController extends Controller 
{
    public function actionIndex(){
        echo '欢迎使用 Yii 2.0  高级应用后台管理系统!';
    }
}
在浏览器地址栏输入:http://yii.backend.com/index.php?r=index/index,就可以访问后台对应控制器里的方法。

在 E:\xampp\htdocs\advanced\frontend\controllers 目录(前台控制器目录)下创建一个 IndexController.php 文件,内容如下:
<?php
namespace frontend\controllers;
use yii\web\Controller;

class IndexController extends Controller 
{
    public function actionIndex(){
        echo '欢迎访问 Yii 2.0  高级应用前台页面!';
    }
}
在浏览器地址栏输入:http://yii.frontend.com/index.php?r=index/index,就可以访问前台对应控制器里的方法。

8. 开启 pathinfo 模式
下面都以基础版为例,高级版类似。
修改 basic/config 目录下的 web.php,在$config = [ 'components'=>[ 加到这里 ] ]中加入:
urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            ],
],
或者,如果 urlManager 所指向的数组已存在,去掉注释即可。
就可以通过 pathinfo 的形式访问控制器里面的方法,如:http://basic.com/index.php/index/index

设置伪静态:
在 urlManager 所指向的数组中,加入如下代码:
'suffix'=>'.html',
就可以这样访问:http://basic.com/index.php/index/index.html

隐藏入口文件 index.php:
web服务器需要开启 mod_rewrite(url重写模块),在 basic/web 目录下,新建一个文件,命名为 .htaccess,内容如下:

# 开启 mod_rewrite 用于美化 URL 功能的支持(译注:对应 pretty URL 选项)
RewriteEngine on
# 如果请求的是真实存在的文件或目录,直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 如果请求的不是真实文件或目录,分发请求至 index.php
RewriteRule . index.php
# ...其它设置...

另外一种方法:
将该url重写规则,用 Directory 标签包裹,然后写入虚拟主机配置文件 httpd-vhosts.conf 对应的标签(<VirtualHost *:80> ... </VirtualHost>)内部,如下:

NameVirtualHost *:80
########## Yii 2.0 基础版 ##########
<VirtualHost *:80>
    ServerName www.basic.com
    ServerAlias basic.com
    DocumentRoot "E:\xampp\htdocs\basic\web"
    ErrorLog "logs/basic.com-error.log"
    CustomLog "logs/basic.com-access.log" common
<Directory "E:\xampp\htdocs\basic\web">
# 开启 mod_rewrite 用于美化 URL 功能的支持(译注:对应 pretty URL 选项)
RewriteEngine on
# 如果请求的是真实存在的文件或目录,直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 如果请求的不是真实文件或目录,分发请求至 index.php
RewriteRule . index.php
# ...其它设置...
</Directory>
</VirtualHost>
########## Yii 2.0 基础版 ##########

重启 Apache 服务器,就可以这样访问:http://basic.com/index/index.html


0 0
原创粉丝点击