SAE问题贴总结,希望自己和后来的人能用到.

#1 47660666

(版块可能不对,Jake误删啊,留个备份,希望自己和后来的人能查漏补缺)

越来越多的SP项目部署到了新浪的云平台,SP框架也在第一时间更新了SAE专用的框架,但是大家使用中还是难免出一些问题.
这个贴算个SAE问题的汇总贴吧有什么问题希望大家多多指点,欢迎补充.

1.SP框架的包不要使用新浪商店自带的安装程序,也不要通过下面的SAE提供的地址安装(貌似会丢掉几个包和文件)
http://sae.sina.com.cn/?m=apps&a=detail&aid=9 (×)

正确的做法是:
去SP的官方下载:
http://www.speedphp.com/download.html  (√)


PS:其实我个人有个很方便的方法,就是本地SP和SAE SP其实不一样的地方只有2个:
1.框架下的SpeedPHP目录
2.入口文件index.php内的配置不同 (下面会有具体说明)
所以如果想把部署在本地的程序发布到SAE, 1:替换SpeedPHP目录 2.修改index.php

2.index内的配置
需要注意的地方有下面几个:
(1).数据库配置,这个没啥说的稍微注意就行SAE的是全局变量,所有人的都一样:
"db" => array( // 数据库设置
                'host' => 'SAE_MYSQL_HOST_M',  // 数据库地址,一般都可以是localhost
                'login' => 'SAE_MYSQL_USER', // 数据库用户名
                'password' => 'SAE_MYSQL_PASS', // 数据库密码
                'database' => 'SAE_MYSQL_DB', // 数据库的库名称
        ),
(2).Smarty的配置,这个需要特别注意:
本地的:
'view' => array(
                'enabled' => TRUE, // 开启Smarty
                'config' =>array(
                        'template_dir' => APP_PATH.'/tpl', // 模板存放的目录
                        'compile_dir' => APP_PATH.'/tmp', // 编译的临时目录
                        'cache_dir' => APP_PATH.'/tmp', // 缓存的临时目录
                        'left_delimiter' => '[{',  // smarty左限定符  //我个人喜欢用[{和]}
                        'right_delimiter' => '}]', // smarty右限定符
                ),
        ),
SAE的:
'view' => array(
                'enabled' => TRUE, // 开启Smarty
                'config' =>array(
                        'template_dir' => APP_PATH.'/tpl', // 模板目录
                        'compile_dir' => 'saemc://templates_c', // 编译目录
                        'cache_dir' => 'saemc://cached', // 缓存目录
                        'left_delimiter' => '[{',  // smarty左限定符
                        'right_delimiter' => '}]', // smarty右限定符
                        'auto_literal' => TRUE, // Smarty3新特性
                ),
        ),
如果你出现空白页面或者修改了代码但是页面无反应之类的奇怪问题,极有可能是这个问题;

(3)SP框架在SAE下重写URL.
之前以为是很复杂的问题,本地配置的.htaccess不能用了,其实几乎没什么变化,请按下面的步骤:
a.配置SAE根目录下的config.yaml
handle:
  - rewrite: if(!is_dir() && !is_file()) goto "index.php?%{QUERY_STRING}"
配成这个样子就可以了,不需要在这里配置,因为SAE的URL重写蛮难搞的,还是在SP的入口问题里配置方便.见下面
b.index内配置具体的重写规则.
'launch' => array( // 加入挂靠点,以便开始使用Url_ReWrite的功能
                'router_prefilter' => array(
                                array('spUrlRewrite', 'setReWrite'),  // 对路由进行挂靠,处理转向地址
                        ),
                 'function_url' => array(
                                array("spUrlRewrite", "getReWrite"),  // 对spUrl进行挂靠,让spUrl可以进行Url_ReWrite地址的生成
                    ),
        ),
       
        'ext' => array(
                'spUrlRewrite' => array(
                        'suffix' => '',
                        'sep' => '/',
                        'map' => array(
                                /*account*/
                                'login' => 'account@login', //这句话的意思 访问appname.com/index.php?c=account&m=login 可以使用
appname.com/account/login代替
                                'register' => 'account@register',
                                'resetpassword' => 'account@resetpassword',
                                /*other*/
                                '@' => 'main@no'        
                        ),
                        'args' => array(
                                 'search' => array('q','page'),
                        ),
                ),
        ),
其他的请参考第一条配置书写.



暂时只能想到这么多,还有一些问题可能没有想到,欢迎大家补充,指点.

2012-04-25 08:59:53

#2 jake

{:soso__12706217326643917179_4:}

补充一个,目前SAE官方发布了本地调试环境,大家可以去下载来用。

http://sae.sina.com.cn/?m=devcenter&catId=231

2012-04-25 09:21:05

#3 liuhui244671426

先占领高地!!!哈哈

2012-04-25 09:27:59

#4 47660666

有个问题忘说了:
SAE下使用Smarty需要开启SAE的
Memcache
.请注意.

2012-04-25 09:58:26

#5 gonten

不错,了解了

2012-04-25 10:49:52

#6 violam

这个可以加进SAE版的文档了,SAE版缺的就是这个,不知道如何下手

2012-04-25 22:10:55

#7 coolcool1265

很详细哦 不错

2012-04-26 08:02:58

#8 ♂爱,在芸端

支持一下。

2012-08-13 01:17:30

#9 乌日根

好文!除了伪静态,我都试过了,可以哒:)

2012-09-09 21:52:22