Heroku是支持语言最多的云平台之一,官方没有公开提示可以支持PHP语言,但是有大牛已经试验过了,可以在这个云平台上安装Wordpress,过程稍稍有点麻烦,但是Heroku提供5Mb的数据库,考虑到云平台的安全性,而且可以绑定域名,所以用来写写博客还是不错的选择。下面就将具体的步骤记录下来,以备不时之需。

(1).在Heroku注册账号

Heroku的官方网站是https://heroku.com/,注册过程很简单,在这里就不详细记述了,建议使用国外的邮箱注册,国内的邮箱可能收不到验证邮件。

(2).安装heroku toolbelt

登陆https://toolbelt.herokuapp.com/,有三种平台Mac OSX、Windows、Debian/Ubuntu可供选择,由于我使用的是XP系统,所以我就下载Windows平台下的heroku toolbelt。安装完成后可以一并将Rails和Git安装了。

(3).下载Wordpress软件和PostgreSQL for WordPress插件

到http://wordpress.org/下载最新的软件包和PostgreSQL for WordPress (PG4WP)并解压,将pg4wp文件夹放到wordpress/wp-content/文件夹下,然后再将pg4wp文件夹里面的db.php文件复制到wordpress/wp-content/文件夹下。因为Wordpress需要MYSQL数据库,但是Heroku提供的是PostgreSQL数据库,所以需要使用PostgreSQL for WordPress (PG4WP)插件。复制配置文件wordpress/wp-config-sample.php文件为wordpress/wp-config.php,并修改数据库账号、密码等信息。将wp-config.php中的代码

1// ** MySQL settings - You can get this info from your web host ** //
2/** The name of the database for WordPress */
3define('DB_NAME', 'database_name_here');
4/** MySQL database username */
5define('DB_USER', 'username_here');
6/** MySQL database password */
7define('DB_PASSWORD', 'password_here');
8/** MySQL hostname */
9define('DB_HOST', 'localhost');

修改为:

 1// ** MySQL settings - You can get this info from your web host ** //
 2$db = parse_url($_ENV["DATABASE_URL"]);
 3/** The name of the database for WordPress */
 4define('DB_NAME', trim($db["path"],'/'));
 5/** MySQL database username */
 6define('DB_USER', $db["user"]);
 7/** MySQL database password */
 8define('DB_PASSWORD', $db["pass"]);
 9/** MySQL hostname */
10define('DB_HOST', $db["host"]);

修改完成后保存退出。

(4).生成public key

进入wordpress文件夹,在DOS命令行下输入命令生成public key。

1ssh-keygen -t rsa
2Generating public/private rsa key pair.
3Enter file in which to save the key (/Users/adam/.ssh/id_rsa):
4Enter passphrase (empty for no passphrase):
5Enter same passphrase again:
6Your identification has been saved in /Users/adam/.ssh/id_rsa.
7Your public key has been saved in /Users/adam/.ssh/id_rsa.pub.
8The key fingerprint is:
9a6:88:0a:0b:74:90:c6:e9:d5:49:d6:e3:04:d5:6c:3e [email protected]

如果以前没有生成public key,只需要默认下一步就可以了,如果以前有现成的可以不生成。

(5).登陆Heroku账号
在DOS命令行下输入命令:

1heroku login
2Enter your Heroku credentials.
3Email: [email protected]
4Password:
5Could not find an existing public key.
6Would you like to generate one? [Yn]
7Generating new SSH public key.
8Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

输入账号和密码登陆后,会将在前面的步骤中生成的public key上传到Heroku中。
如果没有上传成功可以手动添加,命令为:

1heroku keys:add
2Uploading ssh public key /Users/adam/.ssh/id_rsa.pub

删除public key的命令为:

1heroku keys:remove [email protected]
2Key [email protected] removed.

查看public key的命令为:

1heroku keys
2=== 1 key for [email protected]
3ssh-dss AAAAB8NzaC...DVj3R4Ww== [email protected]

(6).新建Heroku Apps账户

Heroku平台支持三种类型:Aspen、Bamboo和Cedar。其中Aspen、Bamboo只支持Ruby,而且操作系统不同。而Cedar则比较新,支持PHP,所以我们需要选用Cedar平台。
在DOS命令下输入命令:

1heroku create --stack cedar

这是会生成一个随机的Heroku Apps账户,如果你需要生成自己的喜欢的账号就需要使用-app参数,具体命令如下:

1heroku create --stack cedar -app yourappsname

这是生成的账号的地址为http://****.herokuapp.com/,如果选择是Aspen、Bamboo,则会生成http://****.heroku.com/的地址。

(7).上传Wordpress源文件

DOS命令下切换到wordpress源代码所在的地址,一次输入以下的命令:

1git init
2git add .
3git commit -m "init"

然后将源文件推送到Heroku服务器,使用如下的命令:

1git push heroku master

(8).完成Wordpress的安装

按照Wordpress正常的安装流程完成安装。

(9).绑定域名

这一步还是需要在DOS命令下完成。绑定域名的命令如下:

1heroku domains:add www.example.com
2Added www.example.com as a custom domain name to myapp.heroku.com

删除一个绑定的域名的命令如下:

1heroku domains:remove www.example.com
2Removed www.example.com as a custom domain name to myapp.heroku.com

如果需要将所有绑定的域名一次性全部删除咋可以使用下面的命令:

1heroku domains:clear
2Removed all domain names for myapp.heroku.com

如果要绑定裸域名,这需要在DNS解析服务器上使用A记录,Heroku提供了三个可以使用的ip可供绑定:

175.101.163.44
275.101.145.87
3174.129.212.2

如果不需要绑定裸域名而绑定二级域名的话,使用CNAME记录就可以了,只需要将www.example.com指向myapp.herokuapp.com就可以了。

注:Heroku不能在线安装插件和皮肤,所以需要事先将需要安装的皮肤和插件到放到指定的文件夹里面,然后推送安装。如果需要更新Wordpress,也需要下载最新的Wordpress最新的源代码然后再推送到Heroku服务器。