问题由来:

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. 类比的方法学习Performance_schema

    引用自:http://www.javacoder.cn/?p=332 MySQL在5.6版本中包含了一个强大的特性——performance-schema,合理的使用这个数据库中的表,能为我们解决一些 ...

  2. Android倒计时Button

    最近做用户绑定,需要用到倒计时的一个Button,就花点时间封装了一个,非常简单,效果图如下: 1.TimeButton 自定义倒计时Button package com.example.timebu ...

  3. BZOJ 1717 [Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组)

    [题目链接]http://www.lydsy.com/JudgeOnline/problem.php?id=1717 [题目大意] 求一个最长的串,使得其在母串中出现的次数达到要求 [题解] 二分答案 ...

  4. 理解Android的layout和measure

    在Android UI开发中,总会有情况需要自定义View和View Group. 什么是View?就是Android中一个基本视图单位,一个Button是一个view, 一个Layout, 也是一个 ...

  5. 【Android界面实现】信息更新小红点显示——自己定义控件BadgeView的使用介绍

    在如今大部分的信息公布类应用,都有这样的一个功能:当后台数据更新,比方有系统消息或者是用户间有互动的时候,通过在控件上显示一个小红点来提示用户有新的信息.一般来说,这样的业务需求,我们能够在布局文件里 ...

  6. findbugs的ant脚本实践

    <?xml version="1.0" encoding="UTF-8"?> <project name="codeCheck&qu ...

  7. 启用Spring quartz定时器,导致tomcat服务器自动停止

    在项目中添加了一个定时功能,基于Spring quartz: 设置好执行时间后(如:每天14:00) 当程序执行完后,就会出现以下信息: 2013-7-22 11:36:02 org.apache.c ...

  8. c 结构体struct

    struct 定义初始化 #include<stdio.h> typedef struct stuInfo { ]; //姓名 int stuId; //学号 int age; //年龄 ...

  9. 前缀 树 背单词(Remember the Word,LA 3942)

    已哭瞎. 搞了2个多小时的错误居然是在  没有初始化............教训:每个例子一定要考虑到初始化问题.! 每个节点存了一个数组  该数组记录的有26个大小  0-25分别表示记录表示'a' ...

  10. SqlCacheDependency的使用

    最近项目需要几秒就获取一次数据,查数据库服务器压力会很大,因此用缓存技术来缓解服务器压力. 使用SqlCacheDependency采用轮询的方式来获取缓存,SqlDependency查询通知的方式来 ...