目录
安装Yii
创建一个新的应用程序
配置
首页 后端开发 php教程 Yii的学习(1)--安装配置_PHP教程

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

Jul 13, 2016 am 10:29 AM
php yii

之前在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目录,并执行以下内容:
  %<span> cd Webroot/testdrive/framework
  </span>% <span>yiic webapp ../../testdrive
  Create a Web application under </span><span>'</span><span>/WebRoot/testdrive</span><span>'</span>? [Yes|<span>No]
  Yes
         </span><span>mkdir</span> /WebRoot/<span>testdrive
         </span><span>mkdir</span> /WebRoot/testdrive/<span>assets
         </span><span>mkdir</span> /WebRoot/testdrive/<span>css
         generate css</span>/<span>bg.gif
         generate css</span>/<span>form.css
         generate css</span>/main.css
登录后复制

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

testdrive/<span>
   index.php                 Web 应用入口脚本文件
   index</span>-<span>test.php            功能测试使用的入口脚本文件
   assets</span>/<span>                   包含公开的资源文件
   css</span>/<span>                      包含 CSS 文件
   images</span>/<span>                   包含图片文件
   themes</span>/<span>                   包含应用主题
   protected</span>/<span>                包含受保护的应用文件
      yiic                   yiic 命令行脚本
      yiic.bat               Windows 下的 yiic 命令行脚本
      yiic.php               yiic 命令行 PHP 脚本
      commands</span>/              包含自定义的 <span>'</span><span>yiic</span><span>'</span><span> 命令
         shell</span>/              包含自定义的 <span>'</span><span>yiic shell</span><span>'</span><span> 命令
      components</span>/<span>            包含可重用的用户组件
         Controller.php      所有控制器类的基础类
         Identity.php        用来认证的 </span><span>'</span><span>Identity</span><span>'</span><span> 类
      config</span>/<span>                包含配置文件
         console.php         控制台应用配置
         main.php            Web 应用配置
         test.php            功能测试使用的配置
      controllers</span>/<span>           包含控制器的类文件
         SiteController.php  默认控制器的类文件
      data</span>/<span>                  包含示例数据库
         schema.mysql.sql    示例 MySQL 数据库
         schema.sqlite.sql   示例 SQLite 数据库
         testdrive.db        示例 SQLite 数据库文件
      extensions</span>/<span>            包含第三方扩展
      messages</span>/<span>              包含翻译过的消息
      models</span>/<span>                包含模型的类文件
         LoginForm.php       </span><span>'</span><span>login</span><span>'</span><span> 动作的表单模型
         ContactForm.php     </span><span>'</span><span>contact</span><span>'</span><span> 动作的表单模型
      runtime</span>/<span>               包含临时生成的文件
      tests</span>/<span>                 包含测试脚本
      views</span>/<span>                 包含控制器的视图和布局文件
         layouts</span>/<span>            包含布局视图文件
            main.php         所有视图的默认布局
            column1.php      使用单列页面使用的布局
            column2.php      使用双列的页面使用的布局
         site</span>/               包含 <span>'</span><span>site</span><span>'</span><span> 控制器的视图文件
            pages</span>/           包含 <span>"</span><span>静态</span><span>"</span><span> 页面
               about.php     </span><span>"</span><span>about</span><span>"</span><span> 页面的视图
            contact.php      </span><span>'</span><span>contact</span><span>'</span><span> 动作的视图
            error.php        </span><span>'</span><span>error</span><span>'</span><span> 动作的视图(显示外部错误)
            index.php        </span><span>'</span><span>index</span><span>'</span><span> 动作的视图
            </span><span>login</span>.php        <span>'</span><span>login</span><span>'</span><span> 动作的视图
         system</span>/             包含系统视图文件
登录后复制

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

http:<span>//</span><span>hostname/testdrive/index.php</span>
登录后复制

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

配置

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

1. 开启apache的mod_rewrite模块,去掉LoadModule rewrite_module modules/mod_rewrite.so前的"#"符号,确保中有"AllowOverride All"。 2. 在项目中的/protected/config/main.php中添加代码:
'components'=><span>array</span><span>(
           </span>...
           'urlManager'=><span>array</span><span>(
                 </span>'urlFormat'=>'path',
                 'showScriptName'=><span>false</span>,<span>//</span><span>注意false不要用引号括上</span>
                 'rules'=><span>array</span><span>(
                     </span>'sites'=>'site/index',<span>
                 )</span>,<span>
           )</span>,
           ...<span>
       )</span>,
登录后复制

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

1)Apache

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

<span>RewriteEngine on

# prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.)
RedirectMatch </span><span>403</span> /\..*<span>$
# </span><span>if</span> a directory or a <span>file</span><span> exists, use it directly
RewriteCond </span>%{REQUEST_FILENAME} !-<span>f
RewriteCond </span>%{REQUEST_FILENAME} !-<span>d
# otherwise forward it to index.php
RewriteRule . index.php</span>
登录后复制

2)Nginx

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

<span>server {
    set $host_path </span><span>"</span><span>/www/mysite</span><span>"</span><span>;
    access_log  </span>/www/mysite/log/<span>access.log  main;

    server_name  mysite;
    root   $host_path</span>/<span>htdocs;
    set $yii_bootstrap </span><span>"</span><span>index.php</span><span>"</span><span>;

    charset utf</span>-<span>8</span><span>;

    location </span>/<span> {
        index  index.html $yii_bootstrap;
        try_files $uri $uri</span>/ /$yii_bootstrap?<span>$args;
    }

    location </span>~ ^/(protected|framework|themes/\<span>w</span>+/<span>views) {
        deny  all;
    }

    #avoid processing of calls to unexisting static files by yii
    location </span>~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|<span>zip</span>|<span>rar)$ {
        try_files $uri </span>=<span>404</span><span>;
    }

    # pass the PHP scripts to FastCGI server listening on </span><span>127.0</span>.<span>0.1</span>:<span>9000</span><span>
    #
    location </span>~<span> \.php {
        fastcgi_split_path_info  </span>^(.+\.php)(.*<span>)$;

        #let yii catch the calls to unexising PHP files
        set $fsn </span>/<span>$yii_bootstrap;
        </span><span>if</span> (-<span>f $document_root$fastcgi_script_name){
            set $fsn $fastcgi_script_name;
        }

        fastcgi_pass   </span><span>127.0</span>.<span>0.1</span>:<span>9000</span><span>;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

        #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC </span><span>3875</span> specifies them <span>for</span><span> CGI
        fastcgi_param  PATH_INFO        $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;
    }

    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)
    location </span>~ /<span>\. {
        deny all;
        access_log off;
        log_not_found off;
    }
}</span>
登录后复制

 

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

 

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

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/778932.htmlTechArticle之前在sina博客写过Yii的文章,来到博客园之后,没再写过关于Yii的文章,正好端午假期没啥事,就结合以前的博客,Yii的官方文档,再加上...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1244
24
在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? 什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP行动:现实世界中的示例和应用程序 PHP行动:现实世界中的示例和应用程序 Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP:网络开发的关键语言 PHP:网络开发的关键语言 Apr 13, 2025 am 12:08 AM

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

PHP的持久相关性:它还活着吗? PHP的持久相关性:它还活着吗? Apr 14, 2025 am 12:12 AM

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。

说明匹配表达式(PHP 8)及其与开关的不同。 说明匹配表达式(PHP 8)及其与开关的不同。 Apr 06, 2025 am 12:03 AM

在PHP8 中,match表达式是一种新的控制结构,用于根据表达式的值返回不同的结果。1)它类似于switch语句,但返回值而非执行语句块。2)match表达式使用严格比较(===),提升了安全性。3)它避免了switch语句中可能的break遗漏问题,增强了代码的简洁性和可读性。

See all articles