本文實例講述了ThinkPHP在新浪SAE平台的部署方法。分享給大家供大家參考。具體實現方法如下:
ThinkPHP自從thinkphp3.0版本開始提供了SAE平台支持,並具備眾多特性,支持本地化開發和調試以及部署切換,讓thinkphper輕松過渡到SAE開發。
一、准備工作:
1、您需要具備SAE的賬號,如果您沒有該賬號,請到 SAE官方網站申請。
2、自己開發或者找一個基於thinkphp3.12開發的程序,本次測試使用的是博客程序WBlog3.1.3版本,沒有的可以點擊此處本站下載。
3、到ThinkPHP官方網下載3.12 版本的SAE引擎Engine,並把它放到核心包的擴展包裡,SAE引擎在thinkphp包的位置:ThinkPHP\Extend\Engine
二、實現步驟:
1、創建一個應用,http://127.0.0.1/如圖所示:
2、創建一個版本,這裡我埴1,如圖所示:
3、上傳代碼包,完整上傳代碼包後如圖所示:
4、創建數據庫。打開數據庫的路徑是w3note » MySQL » 服務管理 »管理MySQL,我創建的數據庫名稱為WBlog,然後把數據表sql文件導入
5、配置前後台的項目入口文件,方法大同小異。下面是前台項目入口文件index.php配置
復制代碼 代碼如下:<?php
//開啟調試模式
define('APP_DEBUG',true);
//前台目錄
define('APP_PATH', './W3note/');
define('W3CORE_PATH','./ThinkPHP');
require W3CORE_PATH.'/Extend/Engine/Sae.php';//加載SAE引擎文件
6、數據庫文件配置
在數據庫建表後,數據庫文件的配置,如DB_HOST、DB_USER、DB_PWD和DB_NAME的配置如下所示,似乎是通用的
復制代碼 代碼如下:<?php
// +----------------------------------------------------------------------
// | WBlog
// +----------------------------------------------------------------------
// | Copyright (c) 2008 http://www.w3note.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 網菠蘿果
// +----------------------------------------------------------------------
// $Id$
if (!defined('W3CORE_PATH')) exit();
return array(
'DB_TYPE'=>'mysql',
'DB_HOST'=>SAE_MYSQL_HOST_M,
'DB_USER'=>SAE_MYSQL_USER,
'DB_PWD'=>SAE_MYSQL_PASS,
'DB_NAME'=>SAE_MYSQL_DB,
'DB_PREFIX'=>'wb_',
'RBAC_ROLE_TABLE'=>'wb_role',
'RBAC_USER_TABLE'=>'wb_role_user',
'RBAC_ACCESS_TABLE'=>'wb_access',
'RBAC_NODE_TABLE'=>'wb_node',
'KEYCODE'=>'gfgP5o',
);
?>
到這裡似乎已經完成了,但是還要注意以下兩點。
1、SAE嚴格區分大小寫
如路徑http://127.0.0.1/Public/Css/style.css 中的Css改為css樣式文件就加載錯誤。不過在本地測試則沒有出錯。
2、SAE URL路由隱藏index.php
如果你在本地的URL 如http://127.0.0.1/WBlog/blog 隱藏index.php,在SAE則無法訪問。原因是
SAE不支持.htaccess文件,但我們可以使用SAE提供的AppConfig服務實現偽靜態。
在你項目的根目錄config.yaml文件(一般會自動生成,沒有的自己建吧),加上如下代碼:
handle:
- rewrite: if(!is_dir() && !is_file() && path~"^(.*)$") goto "index.php/$1"
這樣就可以隱藏入口了。
希望本文所述對大家的ThinkPHP框架程序設計有所幫助。