0

0

Yii的学习(1)--安装配置

php中文网

php中文网

发布时间:2016-07-25 09:12:05

|

1041人浏览过

|

来源于php中文网

原创

之前在sina博客写过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 应用:

  1. http://hostname/testdrive/index.php
复制代码

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

配置

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

1. 开启apache的mod_rewrite模块,去掉LoadModule rewrite_module modules/mod_rewrite.so前的"#"符号,确保中有"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

Tome
Tome

先进的AI智能PPT制作工具

下载

在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. }
  41. }
复制代码

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

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



本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

38

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

83

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

97

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

223

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

458

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

169

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

246

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

34

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号