cakephp基本配置
http://fisherxie.iteye.com/blog/725019
CakePHP 2.x十分钟博客教程
http://www.ruiwant.com/cakephp2-blog-tutorials-part-1-installation-and-configuration.html
参考:
CakePHP 2.x十分钟博客教程(一):安装与配置
http://www.ruiwant.com/cakephp2-blog-tutorials-part-1-installation-and-configuration.html
php框架学习日志二(cakephp在xp上安装)
http://blog.csdn.net/wjazz/article/details/2618750
CakePHP配置
1.下载并解压到目录。
2.httpd.conf配置文件
A:LoadModule rewrite_module modules/mod_rewrite.so把前面的#去掉。
B:检查AllowOverride是否为all如果不是,请改为all。然后保存重启APACHE。
<Directory />
Options FollowSymLinks
AllowOverride all
Order deny,allow
Deny from all
Satisfy all
</Directory>
3.注意.htaccess也要复制过去。
4.两个注意
Notice (1024): Please change the value of 'Security.salt' in APP/Config/core.php to a salt value specific to your application.
[CORE\Cake\Utility\Debugger.php, line 849]
Notice (1024): Please change the value of 'Security.cipherSeed' in APP/Config/core.php to a numeric (digits only) seed value specific to your application.
[CORE\Cake\Utility\Debugger.php, line 853]
找到D:\work_documents\htdocs\app\Config\core.php文件,查看里面的Security.salt,Security.cipherSeed,修改这两个值,就可以了。
5.进入http://localhost,就可以看见欢迎界面了。
6.配置首页:
CakePHP默认设置的一个route来为PagesController::display('home')配置路由。Home是Cake的默认首页视图,你可以在这个位置找到并修改它/app/views/pages/home.thtml。
CakePHP的默认响应请求(访问www.example.com)是使用PagesController控制器,然后输出home.ctp视图文件,这些文件都包含在CakePHP框架的核心库中。现在我们通过路由更改默认响应到PostsController控制器的index()方法。首先找到路由配置文件,/app/Config/routes.php。找到如下代码,并替换新的代码。
//注释掉:
//Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
//添加代码:
$Route->connect ('/', array('controller'=>'Pages', 'action'=>'display', 'home'));
7.配置模板文件格式:
cakephp的默认views编辑页面为ctp格式的,这在DM下编辑不方便,所以我都会把默认修改为html或者htm格式,方便前台美工修改。
D:\work_documents\htdocs\lib\Cake\Controller\Controller.php
#public $ext = '.ctp';
public $ext = '.php';
8.修改默认的页面头部:,页面头部信息可以通过默认的布局文件 APP/views/layouts/default.ctp控制,D:\work_documents\htdocs\app\View\Layouts\default.ctp,直接修改这个文件。
<!DOCTYPE html>
<html>
<head>
<?php echo $this->Html->charset(); ?>
<title>
潘永郑的个人网站
</title>
<?php
/*echo $this->Html->meta('icon');
echo $this->Html->css('cake.generic');
echo $this->fetch('meta');
echo $this->fetch('css');
echo $this->fetch('script');*/
?>
</head>
<body>
<?php echo $this->fetch('content'); ?>
</body>
</html>
9.过滤一些路由,由于默认的cakePHP会占用了所有路由,所以需要设定一些url,让它不通过路由。
D:\work_documents\htdocs\.htaccess,
注意,是根目录下面,不是app文件夹下面的。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/apps/(.*)
RewriteCond %{REQUEST_URI} !^/demos/(.*)
#RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
RewriteCond %{REQUEST_URI} !^/apps/(.*)
RewriteCond %{REQUEST_URI} !^/demos/(.*)
10.自定义layout
在 cakephp 中 layout 默认指向 /app/views/layouts/default.ctp
如果要自定义 layout,需要在 controller 中定义:
var $layout = 'mylayout';
layout 则指向了 /app/views/layouts/mylayout.ctp
如果需要设置一个空的layout,同样也得在controller中或者是controller的函数中定义:
var $layout = 'empty';
然后修改/app/views/layout/empty.ctp;
10. 创建不使用数据库表的 model 或者改变 model 对应的表名
我需要创建一个不使用任何表的model。例如,我想通过 $validate 数组方便底验证输入数据,保持model逻辑的正确性。但创建 model 时对应的表不存在,CakePHP 就会报错。通过在 model 中加入以下代码可以解决这个问题:
var $useTable = false;
也可以通过这种方法改变model对应的表名。
var $useTable = 'some_table';
4. 快速创建后台管理
如果你需要创建后台管理程序,并且希望所有管理action都位于某个特定文件夹下,打开 config/core.php 并将下面这一行的注释去掉:
define('CAKE_ADMIN', 'admin');
这样所有以"admin_"开头的action都可以通过 /admin/yourcontroller/youraction 来访问。例如,如果在 posts controller 中创建了名为 "admin_add" 的 action,那么可以通过 localhost/admin/posts/add 访问这个action。这样就可以方便地为 admin 目录设置密码以避免他人随意访问。
5. 自定义404页面
如果你需要自定义404页面,只需创建 /app/views/errors/error404.thtml。
6. 让controller使用其他model
如果你的controller需要调用来自不同model的数据,只要在controller开头使用如下代码:
class yourController extends AppController {
var $uses = array('Post','User');
public function site()
{
$this->set("site", $this->Post->find("all"));
}
}
这样controller就能访问Post和User model了。
注意:array里面的元素不能是复数,应该是单数,使用为$this->Post
配置数据库
复制database.php.default成database.php,然后修改
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);
一个很哑巴的错误:我做完以上配置,并运行成功。
按照:
http://www.ruiwant.com/cakephp2-blog-tutorials-part-2-controller-model-view-introduction.html,做了个例子,但是,我把我自己的首页去替换掉了webroot/index.php文件,这个时候会出现错误,后来还原了cakephp自己的index.php,才能正常运行。就是说
CakePHP自己webroot/index.php是不能删除的。