Mar 31

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中的代码

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

/** MySQL hostname */
define('DB_HOST', 'localhost');

修改为

// ** MySQL settings - You can get this info from your web host ** //
$db = parse_url($_ENV["DATABASE_URL"]);

/** The name of the database for WordPress */
define('DB_NAME', trim($db["path"],'/'));

/** MySQL database username */
define('DB_USER', $db["user"]);

/** MySQL database password */
define('DB_PASSWORD', $db["pass"]);

/** MySQL hostname */
define('DB_HOST', $db["host"]);

修改完成后保存退出。

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

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

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

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

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

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

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

删除public key的命令为:

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

查看public key的命令为:

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

(6).新建Heroku Apps账户
Heroku平台支持三种类型:Aspen、Bamboo和Cedar。其中Aspen、Bamboo只支持Ruby,而且操作系统不同。而Cedar则比较新,支持PHP,所以我们需要选用Cedar平台。

在DOS命令下输入命令:

heroku create --stack cedar

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

heroku create --stack cedar -app yourappsname

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

(7).上传Wordpress源文件
DOS命令下切换到wordpress源代码所在的地址,一次输入以下的命令:

git init
git add .
git commit -m "init"

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

git push heroku master

(8).完成Wordpress的安装
按照Wordpress正常的安装流程完成安装。

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

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

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

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

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

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

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

75.101.163.44
75.101.145.87
174.129.212.2

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

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

Leave a Reply