问题由来:

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. tpopela/vips_java

    tpopela/vips_java Implementation of Vision Based Page Segmentation algorithm in Java

  2. JAVA实例变量的初始化过程

    假设有这样一段代码: public class Cat { private String name; private int age; public String toString() { retur ...

  3. HDU2546:饭卡(01背包)

    HDU2546:饭卡 http://acm.hdu.edu.cn/showproblem.php?pid=2546 当我们遇到问题选择物体的价值和顺序相关时就需要,排完序后对其01处理.这题因为当我们 ...

  4. 大夏VIEW使用技巧

    HDXTextView *remark=[[HDXTextView alloc] initWithFrame:CGRectMake(leftmargin-5,labbackView.top, cell ...

  5. 面试题之String str = new String("abc"); 创建了几个对象

    今天去面试的时候碰到了这个问题:String str = new String("abc"); 创建了几个对象,回来自己研究并查阅资料才发现答错了..网上的争论不少,有的说是两个, ...

  6. Spring注解与Spring与Struts2整合

    @Component @Controller @Service @Repository 四大注解作用基本一样,只是表象在不同层面 @Resource @Scope Struts2与Spring整合:1 ...

  7. Lucence.net索引技术 二

    一. Lucene索引创建和优化 [版本2.9.0以上] Lucene索引的创建首先需要取得几个必须的对象: 1.分词器//可以采用其他的中文分词器 StandardAnalyzer analyzer ...

  8. python自学笔记(六)二进制与位移

    一.二进制 a = 1 bin(a)-->ob1  #python内置方法 ob 表示二进整型制格式 二.难缠符号 1.位移二进制的位 >> 右位移,想象成 切肉切去最后一位 例如 ...

  9. JS笔记 入门第一

    WHY? 一.你知道,为什么JavaScript非常值得我们学习吗? 1. 所有主流浏览器都支持JavaScript. 2. 目前,全世界大部分网页都使用JavaScript. 3. 它可以让网页呈现 ...

  10. Protel99se教程三:新建PCB文件以及PCB基本设定

    在上一课,我们绘制好SCH原理图后,在这一节课开始,我们介绍,如何将SCH转化成PCB文件,在这一节课,我们主要给大家讲解,如果新建PCB文件以及载入封装图. 第一步:在Documents目录下,新建 ...