• 技术文章 >php教程 >php手册

    Yii学习总结之安装配置

    2016-06-13 09:12:20原创492

    Yii学习总结之安装配置


    本文是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目录,并执行以下内容:

    代码如下:


    % cd Webroot/testdrive/framework
    % yiic webapp ../../testdrive
    Create a Web application under '/WebRoot/testdrive'? [Yes|No]
    Yes
    mkdir /WebRoot/testdrive
    mkdir /WebRoot/testdrive/assets
    mkdir /WebRoot/testdrive/css
    generate css/bg.gif
    generate css/form.css
    generate css/main.css

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

    代码如下:


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

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

    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中添加代码:

    代码如下:


    'components'=>array(
    ...
    'urlManager'=>array(
    'urlFormat'=>'path',
    'showScriptName'=>false,//注意false不要用引号括上
    'rules'=>array(
    'sites'=>'site/index',
    ),
    ),
    ...
    ),

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

    1)Apache

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

    代码如下:


    RewriteEngine on
    # prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.)
    RedirectMatch 403 /\..*$
    # 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

    2)Nginx

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

    代码如下:


    server {
    set $host_path "/www/mysite";
    access_log /www/mysite/log/access.log main;
    server_name mysite;
    root $host_path/htdocs;
    set $yii_bootstrap "index.php";
    charset utf-8;
    location / {
    index index.html $yii_bootstrap;
    try_files $uri $uri/ /$yii_bootstrap?$args;
    }
    location ~ ^/(protected|framework|themes/\w+/views) {
    deny all;
    }
    #avoid processing of calls to unexisting static files by yii
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    try_files $uri =404;
    }
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php {
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    #let yii catch the calls to unexising PHP files
    set $fsn /$yii_bootstrap;
    if (-f $document_root$fastcgi_script_name){
    set $fsn $fastcgi_script_name;
    }
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fsn;
    #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for 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 ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
    }
    }

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

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

    php入门到就业线上直播课:查看学习

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

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:PHP实现通用alert函数的方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• mysql 数据备份类代码• php根据用户语言跳转相应网页• Xgcalendar 新增Php demo• PHP 采集程序原理分析篇• 用PHP向数据库中实现简单的增删改查(纯代码,待完善),php增删
    1/1

    PHP中文网