当前位置:首页 > CMS教程 > 其它CMS > 列表

Yii学习总结之安装配置

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-14 22:45:42 浏览: 评论:0 

本文是Yii学习总结系列文章的第一篇,主要给大家介绍下YII的简单介绍及安装和配置,有需要的小伙伴参考下吧。

之前写过Yii的文章,正好假期没啥事,就结合以前的文章,Yii的官方文档,再加上最近的关于Yii的收获总结一下,写个系列~~

Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。

安装Yii

在安装Yii之前,你必须配置好你的开发环境,如一台支持PHP5.1.0以上版本的Web服务器。Yii已经在Windows和Linux操作系统上的 Apache Web服务器测试通过。它可能也会运行在其他平台上的支持PHP5的Web服务器,互联网上公布了很多免费资源,你可能会获得一个配置好PHP5的Web 服务器环境。在这里我们会抛开Web服务器和PHP5的安装。

Yii的安装其实非常简单,实际只需要两个步骤:

从 http://www.yiiframework.com/ 下载Yii框架 解压下载文件到Web服务器可访问的目录下。

安装完成后,建议你检查一下当前服务器是否已经满足了Yii的所有要求。

幸运的是,这样做很容易,Yii自带了一个简单的检查工具。要调用它,在你的浏览器地址栏中输入:http://yourhostname/path/to/yii/requirements/index.php,下面将显示你服务器的配置。使用检查工具,确定服务器没有安装和使用扩展或组件,但它只是给出一个建议,以确保可以确定安装。正如你看到的,下在的检查结果,并非都是 Passed(通过)状态,也有部份显示Warning(警告)。当然,你的配置情况可能会略有不同,因此,你的显示结果也会有所不同。其实下面的细节部份没有必要全部能通过。但部份也是必要的,根据 Conclusion(结论)这个段落的内容:你的服务器配置满足了Yii的最低要求。(Your server configuration satisfies the minimum requirements by Yii.)

创建一个新的应用程序

Yii的安装位置是你已经知道的

WebRoot是你的Web服务器配置的根目录

从你的命令行,进入到framework目录,并执行以下内容:

  1. % cd Webroot/testdrive/framework 
  2. % yiic webapp ../../testdrive 
  3. Create a Web application under '/WebRoot/testdrive'? [Yes|No] 
  4. Yes 
  5.        mkdir /WebRoot/testdrive 
  6.        mkdir /WebRoot/testdrive/assets 
  7.        mkdir /WebRoot/testdrive/css 
  8.        generate css/bg.gif 
  9.        generate css/form.css 
  10.        generate css/main.css 

你的应用已经成功创建到了/WebRoot/demo下。这个webapp命令的作用是创建一个全新的Yii应用。它只需要指定一个参数,无论是绝对还是相对路径都会创建应用程序。它所生成的目录及文件只是应用程序的一个骨架。代码如下:

  1. testdrive/ 
  2.    index.php                 Web 应用入口脚本文件 
  3.    index-test.php            功能测试使用的入口脚本文件 
  4.    assets/                   包含公开的资源文件 
  5.    css/                      包含 CSS 文件 
  6.    images/                   包含图片文件 
  7.    themes/                   包含应用主题 
  8.    protected/                包含受保护的应用文件 
  9.       yiic                   yiic 命令行脚本 
  10.       yiic.bat               Windows 下的 yiic 命令行脚本 
  11.       yiic.php               yiic 命令行 PHP 脚本 
  12.       commands/              包含自定义的 'yiic' 命令 
  13.          shell/              包含自定义的 'yiic shell' 命令 
  14.       components/            包含可重用的用户组件 
  15.          Controller.php      所有控制器类的基础类 
  16.          Identity.php        用来认证的 'Identity' 类 
  17.       config/                包含配置文件 
  18.          console.php         控制台应用配置 
  19.          main.php            Web 应用配置 
  20.          test.php            功能测试使用的配置 
  21.       controllers/           包含控制器的类文件 
  22.          SiteController.php  默认控制器的类文件 
  23.       data/                  包含示例数据库 
  24.          schema.mysql.sql    示例 MySQL 数据库 
  25.          schema.sqlite.sql   示例 SQLite 数据库 
  26.          testdrive.db        示例 SQLite 数据库文件 
  27.       extensions/            包含第三方扩展 
  28.       messages/              包含翻译过的消息 
  29.       models/                包含模型的类文件 
  30.          LoginForm.php       'login' 动作的表单模型 
  31.          ContactForm.php     'contact' 动作的表单模型 
  32.       runtime/               包含临时生成的文件 
  33.       tests/                 包含测试脚本 
  34.       views/                 包含控制器的视图和布局文件 
  35.          layouts/            包含布局视图文件 
  36.             main.php         所有视图的默认布局 
  37.             column1.php      使用单列页面使用的布局 
  38.             column2.php      使用双列的页面使用的布局 
  39.          site/               包含 'site' 控制器的视图文件 
  40.             pages/           包含 "静态" 页面 
  41.                about.php     "about" 页面的视图 
  42.             contact.php      'contact' 动作的视图 
  43.             error.php        'error' 动作的视图(显示外部错误) 
  44.             index.php        'index' 动作的视图 
  45.             login.php        'login' 动作的视图 
  46.          system/             包含系统视图文件 

这时不用写一行代码,我们就可以在浏览器中访问如下 URL 来看看我们第一个 Yii 应用:

http://hostname/testdrive/index.php

我们会看到的,这个应用包含三个页面:首页、联系页、登录页。首页展示一些关于应用和用户登录状态的信息,联系页显示一个联系表单以便用户填写并提交他们的咨询,登录页允许用户先通过认证然后访问已授权的内容。

配置

在这个应用中,不管到那个页面url中都带有index.php,如果想把它去掉,怎么办。

1. 开启apache的mod_rewrite模块,去掉LoadModule rewrite_module modules/mod_rewrite.so前的"#"符号,确保<Directory "..."></Directory>中有"AllowOverride All"。

2. 在项目中的/protected/config/main.php中添加代码:

  1. 'components'=>array
  2.            ... 
  3.            'urlManager'=>array
  4.                  'urlFormat'=>'path'
  5.                  'showScriptName'=>false,//注意false不要用引号括上 
  6.                  'rules'=>array
  7.                      'sites'=>'site/index'
  8.                  ), 
  9.            ), 
  10.            ... 
  11.        ), 

3.配置服务器,Yii可以在Apache和Nginx下配置

1)Apache

在Apache服务器下,Yii需要配置.htaccess文件,配置如下

  1. RewriteEngine on 
  2. # prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.) 
  3. RedirectMatch 403 /\..*$ 
  4. if a directory or a file exists, use it directly 
  5. RewriteCond %{REQUEST_FILENAME} !-f 
  6. RewriteCond %{REQUEST_FILENAME} !-d 
  7. # otherwise forward it to index.php 
  8. RewriteRule . index.php 
 2)Nginx

Yii可以使用Nginx和PHP的FPM SAPI,配置如下:

  1. server { 
  2.     set $host_path "/www/mysite"
  3.     access_log  /www/mysite/log/access.log  main; 
  4.     server_name  mysite; 
  5.     root   $host_path/htdocs; 
  6.     set $yii_bootstrap "index.php"
  7.     charset utf-8; 
  8.     location / { 
  9.         index  index.html $yii_bootstrap
  10.         try_files $uri $uri/ /$yii_bootstrap?$args
  11.     } 
  12.     location ~ ^/(protected|framework|themes/\w+/views) { 
  13.         deny  all; 
  14.     } 
  15.     #avoid processing of calls to unexisting static files by yii 
  16.     location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { 
  17.         try_files $uri =404; 
  18.     } 
  19.     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
  20.     # 
  21.     location ~ \.php { 
  22.         fastcgi_split_path_info  ^(.+\.php)(.*)$; 
  23.         #let yii catch the calls to unexising PHP files 
  24.         set $fsn /$yii_bootstrap
  25.         if (-f $document_root$fastcgi_script_name){ 
  26.             set $fsn $fastcgi_script_name
  27.         } 
  28.         fastcgi_pass   127.0.0.1:9000; 
  29.         include fastcgi_params; 
  30.         fastcgi_param  SCRIPT_FILENAME  $document_root$fsn
  31.         #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI 
  32.         fastcgi_param  PATH_INFO        $fastcgi_path_info
  33.         fastcgi_param  PATH_TRANSLATED  $document_root$fsn
  34.     } 
  35.     # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.) 
  36.     location ~ /\. { 
  37.         deny all; 
  38.         access_log off; 
  39.         log_not_found off; 
  40.     } 

使用如上配置,你可以在php.ini中设置cgi.fix_pathinfo=0,这样可以避免许多不必要的系统的stat()调用。

基本安装和配置就到这里~~

Tags: Yii安装配置

分享到: