在新浪云搭建wordpress博客:从本地源码到独立域名访问

本文介绍如何将本地wordpress代码通过代码版本管理SVN,上传到新浪云平台。主要步骤有:搭建开发环境,创建应用,从SVN检出项目,修改好本地代码,提交,安装wordpress。

0. 写在前面

我个人博客Spark & Shine用的是香港主机91,服务态度是挺好的,但服务器不稳定性,一直再找更好的主机。各种云(新浪云、阿里云、百度云、谷歌云、亚马逊云、Ucloud)眼花缭乱,也就是通过这次简单了解,了解到新浪云。看到一篇博文说,新浪云赠送2500云豆(成功注册500 + 实名验证2500),对于流量不多的网站,一年也用不完。我手头恰有两个闲置的域名,想着就拿新浪云作主机吧。

新浪云提供一些现成的应用,比如wordpress,一键安装确实方便,但我很快发现,在线修改代码实在太不方便,半天找不开代码编辑器。再加上,新浪云没有英文版的wordpress,有两个选择:其一,可以更改自带的wordpress;其二,直接下载wordpress英文版安装。个人倾向于后者。还有,我想用OSQA搭建一个网站,OSQA用Python语言写的,在新浪云创建Python应用,里面什么都没有。这些因素促使我去折腾如何在本地调试好代码,再通过代码版本管理软件上传到新浪云平台。

PS:在新浪云安装wordpress方法。在新浪云平台SAE首页搜索wordpress,直接安装wordpress应用,在弹出对话框填入二级域名,即可完成安装。可能是我网速不好,有时候不能成功安装,访问zhilitea.sinaapp.com会提示“建立数据库连接时出错”(搜了下,解决办法是到后台修复mysql的wp_options)。

1. 安装开发环境

1.1 Eclipse + subclipse

新浪云官方手册《代码部署手册》介绍了TortoiseSVN客户端(只支持Windows,不过smartSVN同时支持3个平台)使用,Notepad++集成SVN插件、EditPlus、UltraEdit Studio的部署。我是直接安装Eclipse+subclipse,方便跨平台。

Eclipse官网下载Eclipse,解压即可。打开Eclipse,Help –> Eclipse MarketPlace,在搜索框subclipse,按提示安装即可。

1.2 PHP Development Tools (PDT)

2. 本地与远程同步

在新浪云平台创建一个应用,用SVN将远程的代码同步到本地,在本地文件夹,添加或修改源代码,修改完后再提交到服务器。

2.1 创建应用

创建一个应用,并在在管理应用 –> 服务管理下,初始化Mysql, Memcache, Storage(为后续安装wordpress做准备):

  • MySQL –> 管理MySQL
  • Memcache –> 初始化Memcache,设置MC大小(1~200M,决定了云豆的开销),刚开始设1M就好了
  • Storage –> 新建domain,名称填入wordpress

2.2 从SVN检出项目

Ctrl+N打开新建窗口,选择SVN下的Checkout Projects from SVN –> Create a new repository location, 在Url填入SVN仓库地址(如https://svn.sinaapp.com/zhilitea),在弹出对话框填入输入用户名(SAE安全邮箱)和密码(SAE安全密码)。

Check Out As选择Check out as a project in the workspace,点击finish就可以了。代码就存放在eclipse的workspace/zhilitea/1(1是代码版本,默认版本)。 

3. 安装wordpress

这里下载wordpress中文版,将wordpress-4.1-zh_CN.zip解压到workspace/zhilitea/1/目录下(注:会覆盖之前之前的1/index.php)。 回到eclipse,在左侧Package Explorer右击项目 –> Team –> Commit,提交代码。 (其实提交之前,需要做一些修改,以下描述包括走的弯路)

在浏览器访问https://svn.sinaapp.com/zhilitea/wp-admin/install.php,需要填入如下与数据库相关的信息:

  • 数据库名
  • 数据库用户名
  • 数据库密码
  • 数据库主机
  • 数据表前缀(table prefix,特别是当您要在一个数据库中安装多个WordPress时)

郁闷的是,进入PHPMyAdmin,压根就没地方创建数据库、用户名、密码的地方。查了下官方文档,新浪云基于MySQL作了一些扩展,SaeMySQL数据库,定义了如下常量:

用 户 名 : SAE_MYSQL_USER
密  码 : SAE_MYSQL_PASS
主库域名 : SAE_MYSQL_HOST_M
从库域名 : SAE_MYSQL_HOST_S
端  口 : SAE_MYSQL_PORT
数据库名 : SAE_MYSQL_DB

然而,我在wordpress填入上述的数据库信息,还是提示数据库信息有误。

通过手动创建wp-config.php来解决这个问题,具体做法是这样:拷贝一份wp-config-sample.phpwp-config.php,修改wp-config.php里面与数据库有关的代码,相关代码如下:

/** 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);

将改动的代码提交,在浏览器访问https://svn.sinaapp.com/zhilitea/wp-admin/install.php,出现的是wordpress设置页面,填入站点标题、用户名、密码、邮箱,点击安装wordpress,大功告成。现在可以妥妥地访问:http://zhilitea.sinaapp.com/

4. 绑定独立域名

在新浪云应用管理下的应用首页,右侧有个独立域名绑定,输入域名,确定后会得到如下信息:

请把zhilitea.com CNAME到jp.cname.saebbs.com以完成域名绑定。
同时把0afc113f11.zhilitea.com通过A记录解析到103.9.185.155以完成域名身份认证

zhilitea.com CNAMEjp.cname.saebbs.com,提示不能创建CNAME(因为已经存在),然后我将A记录映射改成: @ --> 36.51.255.136 (用ip138.com查了下jp.cname.saebbs.com的ip地址)。等上一段时间,http://zhilitea.com/可以正常访问了。

值得注意的是,上述的做法还不彻底,因为网站所有页面还是基于SAE提供的二级域名。进入到新浪云应用管理 –> PHPMyAdmin,打开wp-options表,将siteurlhome改成独立域名,举例如下:

值得注意的是,尽管独立域名可以正常访问,但不能成功上传媒体文件(比如上传背景图像),因为uploads没有写权限,需要将wordpress的uploads映射到新浪云的Storage,详情操作见博文《在新浪云搭建wordpress博客:解决uploads目录权限问题》。

参考资料:
[1]博文《解决Eclipse中文乱码

Leave a Reply

Your email address will not be published. Required fields are marked *

5 thoughts on “在新浪云搭建wordpress博客:从本地源码到独立域名访问