dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>PHP>php技术资料>文章内容
安装CakePHP
来源:http://www.1x3x.net/cakephp/basic.html 作者:

Cake目录结构一览

当你解压缩Cake后,会发现有3个主目录

  • app
  • cake
  • vendors

cake目录下是核心lib,通常情况下你不要接触它们。

app目录下是你的程序文件所存放的位置。将app目录和cake目录分开,从而可以使多个应用共享一个cake类库。同样的也使得CakePHP的升级变得很容易:你只需要下载最新的版本并且覆盖原来的类库就可以了。不用担心会覆盖掉你的应用程序文件。

你可以使用vendors目录来存放一些第三方类库。后面的章节将会讲到更多关于vendors的内容,一个最基本的概念就是你可以非常方便的通过vendor()方法来调用vendor类库。

让我们来看一下完整的目录结构:

/app

    /config          - 配置文件目录,包括Database, ACL等



    /controllers     - Controllers文件 

        /components  - Components文件



    /index.php       - 允许你将app目录部署为DocumentRoot (译注:参见Apache相关配置)



    /models          - Model文件

 

    /plugins         - Plugins文件



    /tmp             - Cache和日志存放处 



    /vendors         - 你的应用中使用到的第三方类库



    /views          - 视图文件

        /elements    - 视图元素文件

        /errors      - 自定义错误页面

        /helpers     - Helpers文件

        /layouts     - 页面布局文件

        /pages       - 静态页面文件



    /webroot         - web根目录

        /css

        /files

        /img

        /js



/cake                - 核心类库,请不要随意修改任何文件,除非你确信你有这个能力



index.php           



/vendors             - 服务器端的第三方类库

安装CakePHP

 设置CakePHP

第一种设置方案仅推荐使用在开发环境下,因为它不是最安全的方案。第二种方案考虑了更多的安全性问题因而可以放心的使用在生产环境下。

注意:/app/tmp 目录必须具有写权限

开发环境设置

对于开发环境来说,我们可以把整个Cake目录放置在DocumentRoot下:

/wwwroot

    /cake

        /app

        /cake

        /vendors

        .htaccess

        index.php

			

这样的设置方案下,你的URL会如下这般(假设你使用了mod_rewrite):
www.example.com/cake/controllerName/actionName/param1/param2

生产环境设置

使用生产环境配置,你必须拥有修改Web Server DocumentRoot的权限。那样的话,整个域就如同一个CakePHP应用一般。

生产环境配置使用如下目录结构

../path_to_cake_install

    /app

        /config

        /controllers

        /models

        /plugins

        /tmp

        /vendors

        /views

        /webroot <-- 这将是你新的DocumentRoot

        .htaccess

        index.php

    /cake

    /vendors

    .htaccess

    index.php

			

建议修改Apache的配置文件如下:
DocumentRoot /path_to_cake/app/webroot

这样的配置下,你的URL将会如下这般:
http://www.example.com/controllerName/actionName/param1/param2

高级设置

在有些情况下,你希望能够将Cake应用的目录放在磁盘不同目录下。这可能是因为虚拟主机的限制,或者你希望多个app应用能够共享同一个Cake Lib。

对于一个Cake应用,有3个主要组成部分:

   1.

      CakePHP核心Lib - /cake目录下      

      

   2.      

      你的应用的代码(例如:controllers, models, layouts and views) - /app目录下      

      

   3.      

      你的应用web目录下的文件 (例如 图片 js脚本以及css样式文件等) - /app/webroot 目录下	

			

这3个目录都可以放置在磁盘的任意位置,但是webroot目录必须是web server可以访问的。你甚至可以把webroot目录移出app目录,只要你告诉Cake你把它们放到哪里去了。

你需要修改/app/webroot/index.php来完成配置(和Cake一起分发)。你需要修改3个常量:ROOT, APP_DIR, and CAKE_CORE_INCLUDE_PATH。

   1.

      ROOT 为包含app目录的根路径      

   2.

      APP_DIR app目录路径      

   3.

      CAKE_CORE_INCLUDE_PATH Cake核心Lib目录

      

      你的应用web目录下的文件 (例如 图片 js脚本以及css样式文件等) - /app/webroot 目录下	

			

这是范例:

/app/webroot/index.php (partial, comments removed)

if (!defined('ROOT'))

{

    define('ROOT', dirname(dirname(dirname(__FILE__))));

}



if (!defined('APP_DIR'))

{

    define ('APP_DIR', basename(dirname(dirname(__FILE__))));

}



if (!defined('CAKE_CORE_INCLUDE_PATH'))

{

    define('CAKE_CORE_INCLUDE_PATH', ROOT);

}	

		

下面通过一个具体的例子来解释我的配置

   1.

      我希望Cake Lib能够被共享,所以放在user/lib/cake下 (译注:作者都是linux配置,windows环境下随便放放吧)

      

   2.

      Cake webroot 目录为/var/www/mysite/。      

      

   3.

      程序文件目录为/home/me/mysite。

			

下面为具体的目录结构,不再赘述

/home

    /me

        /mysite                  <-- Used to be /cake_install/app

            /config

            /controllers

            /models

            /plugins

            /tmp

            /vendors

            /views

            index.php

/var

    /www

        /mysite                  <-- Used to be /cake_install/app/webroot

            /css

            /files

            /img

            /js

            .htaccess

            css.php

            favicon.ico

            index.php

/usr

    /lib

        /cake                    <-- Used to be /cake_install/cake

            /cake

                /config

                /docs

                /libs

                /scripts

                app_controller.php

                app_model.php

                basics.php

                bootstrap.php

                dispatcher.php

            /vendors

			

我按照上面的目录结构修改/var/www/mysite/index.php如下:

我建议使用'DS'常量代替路径中的斜杠。这样会保证你不会写错导致找不到文件。(考虑跨平台)

  1. if (!defined('ROOT'))  
  2. {  
  3.     define('ROOT', DS.'home'.DS.'me');  
  4. }  
  5.   
  6. if (!defined('APP_DIR'))  
  7. {  
  8.     define ('APP_DIR''mysite');  
  9. }  
  10.   
  11. if (!defined('CAKE_CORE_INCLUDE_PATH'))  
  12. {  
  13.     define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');  
  14. }  
  15.           

Section 5 配置Apache的mod_rewrite

CakePHP和mod_rewrite一同工作时会是最佳体验,我们发现有部分用户在他们的系统上不能让每件事情都很好的运作起来。所以我罗列了一些可能会有帮助的信息:

   1.

      首先确认.htaccess覆写是被允许的:在apache配置文件中检查<Directory>配置下的AllowOverride是不是设置为All。



   2.

      确认你修改的是server的配置文件而不是当前用户或者特定站点的配置文件。

      

   3.

      有的时候,可能你得到的CakePHP副本缺少了必须的.htaccess文件。因为有的操作系统会将以.开头的文件视作隐藏文件,因而不会拷贝它们。确定你的CakePHP副本是我们网站上下载或者是我们的SVN repository上checkout的。

      

   4.

      确认你是否成功加载了mod_rewrite!察看配置文件中是否有'LoadModule rewrite_module libexec/httpd/mod_rewrite.so' 和 'AddModule mod_rewrite.c'。

      

   5.

      如果你把Cake安装在一个用户目录下的话(http://example.com/~myusername/),你需要修改根目录中的.htaccess文件,加上一行"RewriteBase /~myusername/"。

      

   6.

      如果你发现URL后面加上了冗长乏味的sessionID的话

       (http://example.com/posts/?CAKEPHP=4kgj577sgabvnmhjgkdiuy1956if6ska)

      你需要加上一行"php_flag session.trans_id off"就ok了。

			

 


上一篇:C语言指针要搞清的4方面问题   下一篇:cakephp用sql函数扩展DboSource和Model
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·通过对PHP服务器端特性的配置加
·php与mysql三日通
·AJAX技术在PHP开发中的简单应用
·大家所使用的PHP开发环境
·PHP缓存的实现
·针对PHP新手总结的PHP基础知识
·一个简单实现多条件查询的例子
·PHP串行化变量和序列化对象
·PHP表单
·推荐阅读:php技术生成静态页面
·php实用函数
·php生成随机数
  相关文章
·cakephp用sql函数扩展DboSource
·十款PHP开发框架横向比较
·提高MySQL 查询效率的三个技巧
·IBM开放协同开发Jazz框架核心组
·PHP配置文件PHP.INI的中文注释版
·利用PHP制作简单的内容采集器
·在PHP中全面阻止SQL注入式攻击之
·在PHP中全面阻止SQL注入式攻击之
·在PHP中全面阻止SQL注入式攻击之
·升级PHP5的理由:PHP4和PHP5性能
·用 PHP V5 开发多任务应用程序
·CakePHP你必须知道的21条技巧
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763