问题由来:

1. SAE中默认的WP for SAE版本太低, 导致某些基于新版本WordPress的插件不能使用.

2. SAE中单个APP的代码空间仅有100M. 将WordPress中uploads目录替换为SAE的Storage, 可提供10G的存储空间用以存放图片等数据.

安装配置步骤:

  1. 创建新SAE应用, 选择空白php模板, e.g, 新应用ID: stormrider.
  2. 点击管理应用.
  3. 在服务管理中, 开启MySql服务.
  4. 在服务管理中, 点击Storage, 新建一个Domain. (domain name将会在config中用到, 这里取名为stormrider)
  5. 在应用管理中点击代码管理, 创建代码版本, 用svn下载到本地.
  6. 下载需要的WordPress版本, 比如4.2.2, 解压, 拷贝WordPress文件夹中的内容到本地代码目录. 覆盖index.php.
  7. 重命名wp-config-sample.php为wp-config.php. 内容修改为: 
     <?php
    /**
    * WordPress 基础配置文件。
    *
    * 本文件包含以下配置选项: MySQL 设置、数据库表名前缀、
    * 密匙、WordPress 语言设定以及 ABSPATH。如需更多信息,请访问
    * {@link http://codex.wordpress.org/Editing_wp-config.php 编辑
    * wp-config.php} Codex 页面。MySQL 设置具体信息请咨询您的空间提供商。
    *
    * 这个文件用在于安装程序自动生成 wp-config.php 配置文件,
    * 您可以手动复制这个文件,并重命名为 wp-config.php,然后输入相关信息。
    *
    * @Author Elmer Zhang <freeboy6716@gmail.com>
    * @package WordPress
    */ // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
    /** WordPress 数据库的名称 */
    define('DB_NAME', SAE_MYSQL_DB); /** MySQL 数据库用户名 */
    define('DB_USER', SAE_MYSQL_USER); /** MySQL 数据库密码 */
    define('DB_PASSWORD', SAE_MYSQL_PASS); /** MySQL 主机 */
    define('DB_HOST', SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT); /** 创建数据表时默认的文字编码 */
    define('DB_CHARSET', 'utf8'); /** 数据库整理类型。如不确定请勿更改 */
    define('DB_COLLATE', ''); define('WP_USE_MULTIPLE_DB', true); $db_list = array(
    'write'=> array(
    array(
    'db_host' => SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,
    'db_user'=> SAE_MYSQL_USER,
    'db_password'=> SAE_MYSQL_PASS,
    'db_name'=> SAE_MYSQL_DB,
    'db_charset'=> 'utf8'
    )
    ),
    'read'=> array(
    array(
    'db_host' => SAE_MYSQL_HOST_S.':'.SAE_MYSQL_PORT,
    'db_user'=> SAE_MYSQL_USER,
    'db_password'=> SAE_MYSQL_PASS,
    'db_name'=> SAE_MYSQL_DB,
    'db_charset'=> 'utf8'
    )
    ),
    );
    $global_db_list = $db_list['write']; /** replace default wordpress upload URL & DIR with customized storage */
    define('SAE_STORAGE', 'stormrider');
    define('SAE_DIR', 'saestor://'.SAE_STORAGE.'/uploads');
    define('SAE_URL', 'http://'.$_SERVER['HTTP_APPNAME'].'-'.SAE_STORAGE.'.stor.sinaapp.com/uploads'); /**#@+
    * 身份密匙设定。
    *
    * 您可以随意写一些字符
    * 或者直接访问 {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org 私钥生成服务},
    * 任何修改都会导致 cookie 失效,所有用户必须重新登录。
    *
    * @since 2.6.0
    */
    define('AUTH_KEY', hash_hmac('sha1', SAE_ACCESSKEY . 'AUTH_KEY', SAE_SECRETKEY ));
    define('SECURE_AUTH_KEY', hash_hmac('sha1', SAE_ACCESSKEY . 'SECURE_AUTH_KEY', SAE_SECRETKEY ));
    define('LOGGED_IN_KEY', hash_hmac('sha1', SAE_ACCESSKEY . 'LOGGED_IN_KEY', SAE_SECRETKEY ));
    define('NONCE_KEY', hash_hmac('sha1', SAE_ACCESSKEY . 'NONCE_KEY', SAE_SECRETKEY ));
    define('AUTH_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'AUTH_SALT', SAE_SECRETKEY ));
    define('SECURE_AUTH_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'SECURE_AUTH_SALT', SAE_SECRETKEY ));
    define('LOGGED_IN_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'LOGGED_IN_SALT', SAE_SECRETKEY ));
    define('NONCE_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'NONCE_SALT', SAE_SECRETKEY )); /**#@-*/ /**
    * WordPress 数据表前缀。
    *
    * 如果您有在同一数据库内安装多个 WordPress 的需求,请为每个 WordPress 设置不同的数据表前缀。
    * 前缀名只能为数字、字母加下划线。
    */
    $table_prefix = 'wp_'; /**
    * WordPress 语言设置,默认为英语。
    *
    * 本项设定能够让 WordPress 显示您需要的语言。
    * wp-content/languages 内应放置同名的 .mo 语言文件。
    * 要使用 WordPress 简体中文界面,只需填入 zh_CN。
    */
    define ('WPLANG', 'zh_CN'); /**
    * 开发者专用:WordPress 调试模式。
    *
    * 将这个值改为“true”,WordPress 将显示所有开发过程中的提示。
    * 强烈建议插件开发者在开发环境中启用本功能。
    */
    define('WP_DEBUG', true); /* 好了!请不要再继续编辑。请保存该文件。 */ /** WordPress 目录的绝对路径。 */
    if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/'); /** 设置 WordPress 变量和包含文件。 */
    require_once(ABSPATH . 'wp-settings.php');

    wp-config.php

  8. 注意, 必须在config中添加下列定义, 用来启用自定义Storage: (SAE_STORAGE的值 = 步骤4中创建的domain名字)
  9. 修改wp-includes\functions.php
    1. 替换$target赋值部分代码

    2. 设置dir和url

    3. encoding转换
  10. 修改wp-admin/includes/file.php文件
  11. 通过SVN上传代码, 打开应用链接, 进入WordPress初始化页面, 开始配置站点.

在SAE上搭建自定义版本WordPress, 并用SAE Storage代替WordPress Uploads的更多相关文章

  1. 【网站开发】在新浪SAE上搭建一个博客

    概述 在新浪SAE上搭建一个博客 1.访问新浪SAE站点 http://sae.sina.com.cn/ 2.注册新浪SAE 3.选择应用仓库 4.选择WordPress 5.安装WordPress ...

  2. 从Python爬虫到SAE云和微信公众号:二、新浪SAE上搭建微信服务

    目的:用PHP在SAE上搭建一个微信公众号的服务器. 1.申请一个SAE云账号 SAE申请地址:http://sae.sina.com.cn/  可以使用微博账号登陆,SAE是新浪的云服务,时间也比较 ...

  3. 研究在SAE上搭建最新wordpress

    安装SAE上的wordpress,创建应用选择wordpress模板,安装后是3.4版本 新建一个版本2,下载最新wordpress安装包并解压到版本2中 初步猜想修改地方: 数据库配置:wp-con ...

  4. 在新浪SAE上搭建微信公众号的python应用

    微信公众平台的开发者文档https://www.w3cschool.cn/weixinkaifawendang/ python,flask,SAE(新浪云),搭建开发微信公众账号http://www. ...

  5. 使用python在SAE上搭建一个微信应用,使用有道翻译的api进行在线翻译

    1. 准备,先在使用python一步一步搭建微信公众平台(一)中基本实现自动回复的功能后,接着在有道词典上申请一个key,http://fanyi.youdao.com/openapi?path=da ...

  6. 如何利用pyenv 和virtualenv 在单机上搭建多版本python 虚拟开发环境

    pyenv 和virtualenv分别是干什么的? pyenv帮助你在一台机上建立多个版本的python环境, 并提供方便的切换方法. virtualenv则就是将一个目录建立为一个虚拟的python ...

  7. SAE 上传根目录不存在!请尝试手动创建:./Uploads/Picture/

    请在Application\Common\Conf\config.php中,添加'FILE_UPLOAD_TYPE' => 'Sae'

  8. 一个很简单的php留言板。。。。搭建在sae上的。。。

    我在sae上搭建了一个个人简历的页面: 有兴趣的可以访问  http://671coder.sinaapp.com/ 在做下面一个简单的留言板的时候,卡了我很久,虽然完全没用过php..但是还是最后勉 ...

  9. 在SAE上使用Flask插件

    因为我之前学习的时候使用的是虚拟环境,下载的所有需要用到的插件都在flask这个文件夹里面,SAE上Flask的版本和我本地用的版本对不上,导致有时候import都不对,于是我就把本地的环境直接放到S ...

随机推荐

  1. (92) Is there a better crawler than Scrapy? - Quora

    (92) Is there a better crawler than Scrapy? - Quora Is there a better crawler than Scrapy?Edit

  2. javascript中对变量类型的推断

    本文正式地址:http://www.xiabingbao.com/javascript/2015/07/04/javascript-type 在JavaScript中,有5种基本数据类型和1种复杂数据 ...

  3. SGU 319 Kalevich Strikes Back(线段树扫描线)

    题目大意: n个矩形,将一个大矩形分成 n+1 块.矩形之间不重合,可是包括.求这n+1个矩形的面积 思路分析: 用线段树记录他们之间的父子关系.然后dfs 计算面积. 当给出的矩形上边的时候,就要记 ...

  4. Javascript数组的声明

    var cars=new Array(); cars[0]="Audi"; cars[1]="BMW"; cars[2]="Volvo"; ...

  5. 新浪微博 2.4sdk 一闪而过

    解决方法,保持 ios应用中的 build id和 开放平台中填写的一致

  6. CD key 生成

    题目描述如下: 某欧软件需要实现简易的CD-KEY算法,输入3个正整数,以空格隔开,根据者3个正整数生成的cd-key字符串.输出格式:xxxx-xxxx-xxxx-xxyy. 包含16个字符,以短划 ...

  7. linux下core文件调试方法(转载)

    转自于:http://blog.csdn.net/fcryuuhou/article/details/8507775 在程序遇到段错误不寻常退出时,一般是访问内存出错.但是不会给出程序哪里出现的问题, ...

  8. String VS Cstring(字符串)

    #include<string> 与 #include<string.h> 这是两个完全不同的头文件,前者用于C++,后者用于C,一般把这两个头文件都包括进去. 越来越觉得需要 ...

  9. 理解Ajax

    1.优化原则 优化的目的是希望降低程序的整体开销.虽然在程序中有许多因素可以优化,但是通常人们会认为这个开销就是程序的执行时间.其实我们更应该把重点放在对程序整体开销最大的那部分.   2.一切都是权 ...

  10. ThinkPHP第十八天(Widget类的使用,连贯操作where IN用法,缓存S函数使用)

    1.Widget类的使用方法: 第一步:在Action同级目录中新建Widget文件夹(独立分组需要自己建立) 第二步:根据不同功能在Widget文件夹中建立不同的Widget类,如热门文章HotWi ...