Fork me on GitHub

Programming Design Notes

PHP Framework - CodeIgniter

| Comments

最近要替公司制作一個小型網站,便到 GoDaddy 申請 Domain Name,因為 Domain Name 連 Hosting 服務一起購買會便宜很多,所以順便看看 GoDaddy 的 Hosting 服務。我看到 Linux 主機詳細支援有列出 Servlet/JSP,心想那麼好便試試吧,怎知我的 JSP 連打印 Hello World 出來也不能,Server 不能將我的 JSP 編譯,真奇怪(有那位網友知道怎麼解決嗎?)。最後唯有改用 PHP。以前寫 PHP 時不會理什麼 MVC 架構,快點完成便可以,但現在又接受不到那種混亂的格式,上網找尋一下發現 PHP Framework 有數十種,沒可能每一個也去試吧,經朋友介紹下使用了 CodeIgniter 這套 Framework,在這裡記錄安裝步驟。

官方網址: CodeIgniter

下載網址: Download

下載完成並解壓縮後會有 system 目錄、user_guide 目錄、index.php 和 license.txt,為了提高安全性,請將 system 目錄變更為其他名稱,例如: pro_ctlok_system。變更名稱後打開 index.php 更改參數,將
$system_folder = "system"; 

變更為:
$system_folder = "pro_ctlok_system";

現在設定網站的 Domain name,打開 pro_ctlok_system/application/config/config.php 更改參數,將
$config['base_url'] = "http://example.com/";

變更為網站的 Domain name:
$config['base_url'] = "pro.ctlok.com";

要使用到 Database 的可以打開 pro_ctlok_system/application/config/database.php 做一些設定:
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "lawrence";
$db['default']['password'] = "123456";
$db['default']['database'] = "ctlok";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

CodeIgniter 亦支援自動連接 Database,打開 pro_ctlok_system/application/config/autoload.php 更改參數,將
$autoload['libraries'] = array();

變更為
$autoload['libraries'] = array('database');

現在可以將 pro_ctlok_system 目錄和 index.php 放到網站的根目錄,然後打開 index.php 看看是否出現 CodeIgniter 的歡迎頁面。

***使用 GoDaddy Hosting 服務要作出以下更改***

使用上面的設定然後放上 GoDaddy Hosting 是不行的,雖然打開 index.php 出現 CodeIgniter 的歡迎頁面, 但其他Controller 是不能正常運作的。

打開 config.php 更改以下參數:
$config['index_page'] = "index.php?";
$config['uri_protocol'] = "QUERY_STRING";

然後在根目錄新增 .htaccess 檔案並輸入以下內容:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]

現在可以以這種方式打開 Controller 了
http://pro.ctlok.com/controller/action/etc

相關書籍: CodeIgniter for Rapid PHP Application Development: Improve your PHP coding productivity with the free compact open-source MVC CodeIgniter framework!Professional CodeIgniterCodeIgniter 1.7 professional development