CakePHP中文手册【翻译】-安装CakePHP

安装CakePHP

1

介绍

现在你知道关于所有CakePHP库的结构和目的了,或者你已经直接跳到本部分,因为你不关心这些材料,而仅想开始玩玩这框架。不管怎样,你已经做好让你双手受累的准备了。J

本章介绍在server上必须安装什么,配置server的不同方式,以及下载和安装CakePHP并设置缺省的CakePHP页面,还有一些疑难问题的技巧,仅仅是在那些不按计划工作的情况。

2

需求

为使用CakePHP,首先必须让server安装所有需要的库和程序来运行CakePHP:

Server 需求

下面是建立Server来运行CakePHP所需要的:

1.    HTTP server(例如Apache),需要启用的有:Sessionmod_rewrite(不是绝对需要,但最好打开)

2.    PHP4.3.2或更高。没错,CakePHPPHP4PHP5下工作得很好。

3.    数据库引擎(现在,有MySQLPostgreSQL,以及ADODB包的支持)。

3

安装CakePHP

获取最新的稳定版本

有多种方式得到CakePHP的拷贝:CakeForge得到一个稳定的发行版,抓取一个每日构建版本,或从SVN得到最新版本的代码。

为了下载一个稳定版本的代码,检查一下 CakForgeCakePHP项目的文件区,访问http://cakeforge.org/projects/cakephp/.

为了获取一个每日构建版本,从http://cakephp.org/downloads/index/nightly下载一个。这些每日版本是稳定的,他们常常包括了稳定发行版间的bug修复。

为了从SVN库里获取新的拷贝,使用你喜爱的SVN客户端连接到https://svn.cakephp.org/repo/trunk/cake/,并选择你寻找的版本。

解压缩

既然已经下载最新的发行版,将压缩包放在web serverwebroot下。现在你需要解压缩CakePHP包。有2种方式,一是使用开发安装,他允许你非常容易查看单个domain下的多个CakePHP应用程序,或者使用产品安装,它允许domain仅安装一个CakePHP应用程序。

4

建立CakePHP

第一种安装CakePHP的方法一般只在开发环境下推荐,因为它不够安全。第二种方法考虑到更多安全,可以在产品环境下使用。

注:对Web server运行的用法来说,/app/tmp 必须是可写的

开发安装

对于开发,我们可以将整个Cake安装目录放在DocumentRoot指定的那里,如下:

/wwwroot
    /cake
        /app
        /cake
        /vendors
        .htaccess
        index.php
 
 

在此安装里,wwwroot文件夹是作为web根目录的,因此URL会像如此(如果也使用了mod_rewrite:

www.example.com/cake/controllerName/actionName/param1/param2

产品安装

为了利用产品安装,你需要有改变ServerDocumentRoot的权限。这样做会让整个domain作为单个CakePHP应用程序。

产品安装使用下面的布局:

../path_to_cake_install
    /app
        /config
        /controllers
        /models
        /plugins
        /tmp
        /vendors
        /views
        /webroot <-- 它应该是你的新DocumentRoot
        .htaccess
        index.php
    /cake
    /vendors
    .htaccess
index.php
 
 

建议的产品httpd.conf

DocumentRoot /path_to_cake/app/webroot

在此安装里,webroot目录是web根目录,因此URL可能会像这样(如果你正在使用using mod_rewrite):

http://www.example.com/controllerName/actionName/param1/param2

高级安装: 可选的安装选项

存在多种情况,在这些情况里,你愿意将Cake的目录放在不同的磁盘位置。这可能因为一个共享的主机限制,也可能想让一些应用程序共享同样的Cake库。

对一个Cake应用程序,这里有3个主要部分:

1.   核心的 CakePHP/cake找到

2.    你的应用程序代码(例如,controllermodellayout以及view-/app找到

3.    应用程序的webroot文件(例如:imagesjavascript,以及css-/app/webroot找到

这些目录的每一个都可以放在文件系统的任何位置,除了webroot,它需要web server才可以访问。你甚至可以将webroot文件夹移出app文件夹,只要你告诉Cake你把他们放在哪里了。

为配置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库文件夹的路径。

/app/webroot/index.php (部分 ,注释已经移除)

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);
}

 

一个例子可能会帮助你更好的描述它。假想我打算建立Cake和下面的安装一起工作:

1.    我想让我的Cake库和其他应用程序分享,并放在usr/lib/cake.

2.    我的Cake webroot目录应该为/var/www/mysite/

3.    我的应用程序文件存储在/var/www/mysite/.

文件安装如下:
/home
    /me
        /mysite                  <-- 以前为 /cake_install/app
            /config
            /controllers
            /models
            /plugins
            /tmp
            /vendors
            /views
            index.php
/var
    /www
        /mysite                  <-- 以前为 /cake_install/app/webroot
            /css
            /files
            /img
            /js
            .htaccess
            css.php
            favicon.ico
            index.php
/usr
    /lib
        /cake                    <-- 以前为 /cake_install/cake
            /cake
                /config
                /docs
                /libs
                /scripts
                app_controller.php
                app_model.php
                basics.php
                bootstrap.php
                dispatcher.php
            /vendors
 

考虑这种类型的安装,需要编辑webroot index.php文件(在本例中它应该在/var/www/mysite/index.php),如下:

建议使用‘DS’常量而非斜杠(“/”)来分隔文件路径。它阻止任何使用错误分隔符带来的‘丢失的文件错误,并且使你的代码更加具有可移植性。

if (!defined('ROOT'))
{
    define('ROOT', DS.'home'.DS.'me');
}

if (!defined('APP_DIR'))
{
    define ('APP_DIR', 'mysite');
}

if (!defined('CAKE_CORE_INCLUDE_PATH'))
{
    define('CAKE_CORE_INCLUDE_PATH', DS.'usr'.DS.'lib'.DS.'cake');
}

 

5

配置Apache mod_rewrite

CakePHPmod_rewrite工作时,我们已经注意到一些用户努力让任何事情在他们系统上运行的非常好。这里有一些东西,你可以试试他们让它正确运行:

1.    务必让.htaccess 覆写打开:在httpd.conf里,应该有一个块,它为Server上的每个Directory定义了一个块。务必使AllowOverride 对相应的Directory设置为All

2.    务必编辑系统级的httpd.conf,而不是用户或site级的httpd.conf

3.    因为某些原因或其他,你可能已经得到一份并不必须需要的.htaccess文件的CakePHP。有时它会发生的,因为某些操作系统将为以‘.’开头的文件看作为隐藏文件,不要拷贝他们。务必让你的CakePHP来自site的下载部分或SVN

4.    务必正确加载mod_rewrite!你应该看看一些在httpd.conf文件里的例如像LoadModule rewrite_module libexec/httpd/mod_rewrite.so AddModule mod_rewrite.c的东西

5.    如果你正在将Cake安装到一个用户目录下(http://example.com/~myusername/),你需要修改Cake安装目录基础(base)目录的.htaccess文件。仅加上一行:"RewriteBase /~myusername/".

6.    如果因为某些原因,URL的前缀是一个长而且讨厌的Session IDhttp://example.com/posts/?CAKEPHP=4kgj577sgabvnmhjgkdiuy1956if6ska),你也可以在安装根目录下的.htaccess文件中加入"php_flag session.trans_id off"

6

确保它正在工作

好吧,让我们看看运行的孩子吧。依赖你安装的方式,你应该将你的浏览器指定到http://www.example.com http://www.example.com/cake.此时,你会看到CakePHP的缺省页面,以及一个消息,此消息告诉你当前数据库链接的状态。

恭喜你!你已经为开始创建你的第一个基于Cake的应用程序做好准备了。

Last Updated:2006年11月30日
posted @ 2006-11-01 18:34  张太国  阅读(9556)  评论(2编辑  收藏