在新浪 SAE(Sina App Engine)雲平台上部署 CodeIgniter 專案時,由於平台對檔案系統權限的嚴格限制,快取目錄無法正常寫入,導致原版 CodeIgniter 無法直接運行。開發者通常會採用社群維護的 CodeIgniter 2.10 for SAE 版本(專案地址:ci-sae),該版本已針對 SAE 環境進行適配。
在 application/config/database.php 中,需使用 SAE 內建常數來配置連線參數,確保與平台提供的 MySQL 服務正確對接:
$db['default']['hostname'] = SAE_MYSQL_HOST_M;
$db['default']['username'] = SAE_MYSQL_USER;
$db['default']['password'] = SAE_MYSQL_PASS;
$db['default']['database'] = SAE_MYSQL_DB;
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['default']['port'] = SAE_MYSQL_PORT;
其中有兩個參數至關重要,配置錯誤會直接導致資料庫連線失敗:
Unable to connect to your database server 錯誤,錯誤堆疊通常指向 core/Loader.php 第 346 行。若出現以下錯誤提示,請優先檢查上述兩項配置:
A Database Error Occurred
Unable to connect to your database server using the provided settings.
Filename: core/Loader.php
Line Number: 346
此外,確保 cache_on 設為 FALSE 且 cachedir 為空,避免因檔案系統唯讀導致快取寫入失敗。採用 SAE 專用常數(如 SAE_MYSQL_HOST_M、SAE_MYSQL_PORT)可自動適配平台分配的資料庫實例,無需硬編碼 IP 與埠號,提升部署靈活性。