在SAE上搭建自定义版本WordPress, 并用SAE Storage代替WordPress Uploads

问题由来:

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. 内容修改为: 
      1 <?php
      2 /** 
      3  * WordPress 基础配置文件。
      4  *
      5  * 本文件包含以下配置选项: MySQL 设置、数据库表名前缀、
      6  * 密匙、WordPress 语言设定以及 ABSPATH。如需更多信息,请访问
      7  * {@link http://codex.wordpress.org/Editing_wp-config.php 编辑
      8  * wp-config.php} Codex 页面。MySQL 设置具体信息请咨询您的空间提供商。
      9  *
     10  * 这个文件用在于安装程序自动生成 wp-config.php 配置文件,
     11  * 您可以手动复制这个文件,并重命名为 wp-config.php,然后输入相关信息。
     12  *
     13  * @Author Elmer Zhang <freeboy6716@gmail.com>
     14  * @package WordPress
     15  */
     16 
     17 // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
     18 /** WordPress 数据库的名称 */
     19 define('DB_NAME', SAE_MYSQL_DB);
     20 
     21 /** MySQL 数据库用户名 */
     22 define('DB_USER', SAE_MYSQL_USER);
     23 
     24 /** MySQL 数据库密码 */
     25 define('DB_PASSWORD', SAE_MYSQL_PASS);
     26 
     27 /** MySQL 主机 */
     28 define('DB_HOST', SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT);
     29 
     30 /** 创建数据表时默认的文字编码 */
     31 define('DB_CHARSET', 'utf8');
     32 
     33 /** 数据库整理类型。如不确定请勿更改 */
     34 define('DB_COLLATE', '');
     35 
     36 define('WP_USE_MULTIPLE_DB', true);
     37 
     38 $db_list = array(
     39         'write'=> array(
     40             array(
     41                 'db_host' => SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,
     42                 'db_user'=> SAE_MYSQL_USER,
     43                 'db_password'=> SAE_MYSQL_PASS,
     44                 'db_name'=> SAE_MYSQL_DB,
     45                 'db_charset'=> 'utf8'
     46                 )
     47             ),
     48         'read'=> array(
     49             array(
     50                 'db_host' => SAE_MYSQL_HOST_S.':'.SAE_MYSQL_PORT,
     51                 'db_user'=> SAE_MYSQL_USER,
     52                 'db_password'=> SAE_MYSQL_PASS,
     53                 'db_name'=> SAE_MYSQL_DB,
     54                 'db_charset'=> 'utf8'
     55                 )
     56             ),
     57         );
     58 $global_db_list = $db_list['write'];
     59 
     60 /** replace default wordpress upload URL & DIR with customized storage */
     61 define('SAE_STORAGE', 'stormrider');
     62 define('SAE_DIR', 'saestor://'.SAE_STORAGE.'/uploads');
     63 define('SAE_URL', 'http://'.$_SERVER['HTTP_APPNAME'].'-'.SAE_STORAGE.'.stor.sinaapp.com/uploads');
     64 
     65 /**#@+
     66  * 身份密匙设定。
     67  *
     68  * 您可以随意写一些字符
     69  * 或者直接访问 {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org 私钥生成服务},
     70  * 任何修改都会导致 cookie 失效,所有用户必须重新登录。
     71  *
     72  * @since 2.6.0
     73  */
     74 define('AUTH_KEY',         hash_hmac('sha1', SAE_ACCESSKEY . 'AUTH_KEY', SAE_SECRETKEY ));
     75 define('SECURE_AUTH_KEY',  hash_hmac('sha1', SAE_ACCESSKEY . 'SECURE_AUTH_KEY', SAE_SECRETKEY ));
     76 define('LOGGED_IN_KEY',    hash_hmac('sha1', SAE_ACCESSKEY . 'LOGGED_IN_KEY', SAE_SECRETKEY ));
     77 define('NONCE_KEY',        hash_hmac('sha1', SAE_ACCESSKEY . 'NONCE_KEY', SAE_SECRETKEY ));
     78 define('AUTH_SALT',        hash_hmac('sha1', SAE_ACCESSKEY . 'AUTH_SALT', SAE_SECRETKEY ));
     79 define('SECURE_AUTH_SALT', hash_hmac('sha1', SAE_ACCESSKEY . 'SECURE_AUTH_SALT', SAE_SECRETKEY ));
     80 define('LOGGED_IN_SALT',   hash_hmac('sha1', SAE_ACCESSKEY . 'LOGGED_IN_SALT', SAE_SECRETKEY ));
     81 define('NONCE_SALT',       hash_hmac('sha1', SAE_ACCESSKEY . 'NONCE_SALT', SAE_SECRETKEY ));
     82 
     83 /**#@-*/
     84 
     85 /**
     86  * WordPress 数据表前缀。
     87  *
     88  * 如果您有在同一数据库内安装多个 WordPress 的需求,请为每个 WordPress 设置不同的数据表前缀。
     89  * 前缀名只能为数字、字母加下划线。
     90  */
     91 $table_prefix  = 'wp_';
     92 
     93 /**
     94  * WordPress 语言设置,默认为英语。
     95  *
     96  * 本项设定能够让 WordPress 显示您需要的语言。
     97  * wp-content/languages 内应放置同名的 .mo 语言文件。
     98  * 要使用 WordPress 简体中文界面,只需填入 zh_CN。
     99  */
    100 define ('WPLANG', 'zh_CN');
    101 
    102 /**
    103  * 开发者专用:WordPress 调试模式。
    104  *
    105  * 将这个值改为“true”,WordPress 将显示所有开发过程中的提示。
    106  * 强烈建议插件开发者在开发环境中启用本功能。
    107  */
    108 define('WP_DEBUG', true);
    109 
    110 /* 好了!请不要再继续编辑。请保存该文件。 */
    111 
    112 /** WordPress 目录的绝对路径。 */
    113 if ( !defined('ABSPATH') )
    114     define('ABSPATH', dirname(__FILE__) . '/');
    115 
    116 /** 设置 WordPress 变量和包含文件。 */
    117 require_once(ABSPATH . 'wp-settings.php');
    wp-config.php
  8. 注意, 必须在config中添加下列定义, 用来启用自定义Storage: (SAE_STORAGE的值 = 步骤4中创建的domain名字)


  9. 修改wp-includesfunctions.php
    1. 替换$target赋值部分代码

    2. 设置dir和url

    3. encoding转换


  10. 修改wp-admin/includes/file.php文件
  11. 通过SVN上传代码, 打开应用链接, 进入WordPress初始化页面, 开始配置站点.
原文地址:https://www.cnblogs.com/haibinyuan/p/4578767.html