搜尋
首頁後端開發php教程Yii的学习(1)--安装配置_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目录,并执行以下内容:
  %<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
您如何防止與會議有關的跨站點腳本(XSS)攻擊?您如何防止與會議有關的跨站點腳本(XSS)攻擊?Apr 23, 2025 am 12:16 AM

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

您如何優化PHP會話性能?您如何優化PHP會話性能?Apr 23, 2025 am 12:13 AM

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

什麼是session.gc_maxlifetime配置設置?什麼是session.gc_maxlifetime配置設置?Apr 23, 2025 am 12:10 AM

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

您如何在PHP中配置會話名?您如何在PHP中配置會話名?Apr 23, 2025 am 12:08 AM

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。

您應該多久再生一次會話ID?您應該多久再生一次會話ID?Apr 23, 2025 am 12:03 AM

會話ID應在登錄時、敏感操作前和每30分鐘定期重新生成。 1.登錄時重新生成會話ID可防會話固定攻擊。 2.敏感操作前重新生成提高安全性。 3.定期重新生成降低長期利用風險,但需權衡用戶體驗。

如何在PHP中設置會話cookie參數?如何在PHP中設置會話cookie參數?Apr 22, 2025 pm 05:33 PM

在PHP中設置會話cookie參數可以通過session_set_cookie_params()函數實現。 1)使用該函數設置參數,如過期時間、路徑、域名、安全標誌等;2)調用session_start()使參數生效;3)根據需求動態調整參數,如用戶登錄狀態;4)注意設置secure和httponly標誌以提升安全性。

在PHP中使用會議的主要目的是什麼?在PHP中使用會議的主要目的是什麼?Apr 22, 2025 pm 05:25 PM

在PHP中使用會話的主要目的是維護用戶在不同頁面之間的狀態。 1)會話通過session_start()函數啟動,創建唯一會話ID並存儲在用戶cookie中。 2)會話數據保存在服務器上,允許在不同請求間傳遞數據,如登錄狀態和購物車內容。

您如何在子域中分享會議?您如何在子域中分享會議?Apr 22, 2025 pm 05:21 PM

如何在子域名間共享會話?通過設置通用域名的會話cookie實現。 1.在服務器端設置會話cookie的域為.example.com。 2.選擇合適的會話存儲方式,如內存、數據庫或分佈式緩存。 3.通過cookie傳遞會話ID,服務器根據ID檢索和更新會話數據。

See all articles

熱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

好用且免費的程式碼編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),