第三章 安裝CakePHP
1,Requirements
你必須有一個(gè)服務(wù)器,具備程序和庫來運(yùn)行CakePHP
1.1 服務(wù)器的要求
1.HTTP服務(wù)端(比如Apache),下面的選項(xiàng)要打開:sessions, mod_rewrite(雖然不是必須但是建議有)
2.PH
3.數(shù)據(jù)庫引擎(現(xiàn)在已經(jīng)支持MySQL,PostgreSQL and a wrapper for ADODB)
2.安裝CakePHP
2.1 得到最新的穩(wěn)定版本
www.cakephp.org 點(diǎn)擊Downloads>Release
2.2 解壓縮
放置到根目錄,解壓縮,有兩種安裝方式,開發(fā)方式安裝使得你可以容易的在一個(gè)域名下面察看許多CakePHP程序,產(chǎn)品安裝方式使得一個(gè)域名下面只有一個(gè)程序
3. 建立CakePHP
第一種方法在開發(fā)環(huán)境下比較合適,但是并不安全。第二種方法更安全可以安裝在最終產(chǎn)品的環(huán)境下
3.1 開發(fā)方式安裝
為了開發(fā),我們可以將整個(gè)Cake的安裝目錄放到特殊的DocumentRoot下,如下:
這種安裝wwwroot當(dāng)作整個(gè)網(wǎng)站的目錄,所以你的URL如下顯示
如果你使用了mod_rewrite, 你的URLs會變成下面的這種形式
4. 配置Apache和mod_rewrite
當(dāng)CakePHP沒有mod_rewrite支持時(shí)候,我們發(fā)現(xiàn)許多用戶由于不能完美運(yùn)行他們的系統(tǒng)而苦惱。下面是一些可能需要嘗試并且使之正確運(yùn)行的事情:
● 確定 .htaccess的override是允許的:在你的httpd.conf中,你需要有一段代碼,在你的服務(wù)器上每個(gè)目錄。確定AllowOverride對當(dāng)前的目錄設(shè)置成為All
● 確定你修改的是系統(tǒng)的httpd.conf,而不是用戶或者特定站點(diǎn)的httpd.conf
● 在某些情況下,你可能得到一份缺少 .htaccess文件的CakePHP,這可能是因?yàn)槟承┫到y(tǒng)把 .開頭的文件當(dāng)作隱藏文件就不拷貝。確定你拷貝的文件來中包含.htaccess
● 確定你正確上傳mod_rewrite。你可以查看一下 httpd.conf中類似于LoadModule rewrite_module libexec/httpd/mod_rewrite.so 和AddModulemod_rewrite.c
5. 確定CakePHP正確工作
現(xiàn)在,我們實(shí)際查看一下。根據(jù)你選擇不同的安裝方式,你應(yīng)該將你的瀏覽器的URL指向 http://www.example.com或者http://www.example.com/cake.這時(shí),你會看到CakePHP的默認(rèn)目錄,以及一條數(shù)據(jù)庫連接狀態(tài)的消息。
恭喜!你現(xiàn)在已經(jīng)可以創(chuàng)建你的第一個(gè)基于Cake的程序了。如果你現(xiàn)在什么都沒有看到或者受到一條錯(cuò)誤信息,可以到http://wiki.cakephp.org或者#cakephp on irc.freenode.net尋找更多的幫助。
第四章 配置
1. 數(shù)據(jù)庫配置
app/config/database.php文件是數(shù)據(jù)庫配置文件。默認(rèn)安裝后并沒有database.php文件,所以你需要拷貝database.php.default到database.php. 之后,你可以看到如下:
例4.1
根據(jù)你的數(shù)據(jù)庫連接信息替換上面的配置
CakePHP支持下面的數(shù)據(jù)庫驅(qū)動
$default 連接中的connect key允許你設(shè)置是否需要持久連接數(shù)據(jù)庫,請仔細(xì)閱讀database.php.default文件中的注釋,以配置你的數(shù)據(jù)庫連接類型。
你的數(shù)據(jù)庫中的表也應(yīng)該遵循下面的命名規(guī)則:
● cake使用的表名(Table name)應(yīng)該有英文的復(fù)數(shù)形式組成,比如users, authors, articles. 注意,對應(yīng)的model是單數(shù)形式
● 所有的表 都必須有一個(gè)主鍵叫做 id
● 如果你需要關(guān)聯(lián)tables,使用外鍵比如 article_id 。表的名字是單數(shù),必須是小寫,比如id
● 另外,最好遵從下面的命名規(guī)則以便更方便的使用某些功能
Include a ‘created’ 列
Include a ‘modified’列
你也可能注意到了database.php文件中有一個(gè)$test的連接,填上這個(gè)配置(或者添加其他類似的配置文件),在你使用的時(shí)候?qū)⑾旅娴拇a
添加到你的一個(gè)models中
2. 全局配置
CakePHP的全局配置可以在/app/config/core.php找到。盡管我們確實(shí)不喜歡配置文件,但是配置確實(shí)很難做。在這個(gè)文件中你可以修改一些,每一項(xiàng)設(shè)置都可以在core.php的注釋中找到。
DEBUG: 設(shè)置這個(gè)變量不同的值可以幫助你在運(yùn)行文件的時(shí)候debug你的程序。江這個(gè)值設(shè)成不同的非0值,可以使得Cake打印出SQL語句并且阻止程序下一步進(jìn)行(原文:Specifiying this setting to a non-zero value will force Cake to print out SQL statements and stop flash messages from forwarding.)
CAKE_SESSION_COOKIE:在你的Cake應(yīng)用中,這個(gè)變量可以設(shè)置成為保存用戶session的cookie名字
CAKE_SECURITY:這個(gè)變量不同的值達(dá)標(biāo)不同的sessions檢查等級。Cake創(chuàng)建新的session,刪除舊的session都基于這個(gè)變量。下面是可能的值:
high: session十分鐘后失效
medium: session 二十分鐘后失效
low: session 三十分鐘后失效
CAKE_SESSION_SAVE: 設(shè)置如何保存session。下面是可能的值
cake: 保存在tmp/目錄下
php: 根據(jù)php.ini中的設(shè)置保存
database: 被保存到默認(rèn)(現(xiàn)在還沒有實(shí)現(xiàn),以后繼續(xù)完善)
3.路徑設(shè)置
‘Routing’是類似于mod_rewrite的 pared-down pure-PHP(機(jī)制),可以幫助將URL影射到 controller/action/params. Cake 添加這個(gè)可以幫助我們更好的實(shí)現(xiàn)URL轉(zhuǎn)化并使得我們可以脫離mod_rewrite的要求。然而使用mod_rewrite,使得我們的address bar顯得更加整潔。
Routes是映射URLs到特定的controllers和actions的獨(dú)立規(guī)則。Routes被配置在app/config/routes.php文件中,設(shè)置形式如下:
例4.2 Route Pattern
在這里
URL是Cake的URL你想要映射的(URL is the Cake URL you wish to map)
controllername 是你想要調(diào)用的controller的名字
actionname 是你想要調(diào)用controller的action的名字
firstparam是特定的action的第一個(gè)參數(shù)
下面的這個(gè)例子將/blog下面的所有URL連接到了BlogController. 默認(rèn)的action是BlogController::index()
例4.3 Route Example
一個(gè)URL 比如 /blog/history/05/june 處理如下: 例4.4 Route Handing in a Controller
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈