Jun 09

在 Windows XP 系统上即使已经修改 C:WINDOWSsystem32driversetchosts 文件,并添加了某些网址的IPv6地址,但是在解析的时候, IPv6 的优先级仍然要比IPv4 低,这就需要在命令行下输入:

netsh
int
ipv6
set prefix ::1/128 50 0
set prefix ::/0 40 1
set prefix 2002::/16 30 1
set prefix ::/96 20 3
set prefix ::ffff:0:0/96 10 4
set prefix 2001::/32 5 1

实际上上述命令的完整格式应该是

>netsh int ipv6 set prefix ?

用法:  set prefixpolicy [prefix=]/ [precedence=] [label=] [[store=]active|persistent]

参数:

        标记                值
        prefix            - 添加到策略的前缀。
        precedence        - 排序的优先顺序值。
        label             - 匹配的标签值。
        store             - 下列值之一:
                            active: 更改只持续到下一次重新启动。
                            persistent: 更改持久有效(默认值)。

说明: 修改给定前缀的源和目标地址选择策略。

示例:

        set prefixpolicy ::/96 3 4

要查看当前的策略优先级设定,可以输入:

>netsh int ipv6 sh prefixpolicy (Windows 7 请使用 prefixpolies 关键字)
正在查询活动状态...

优先顺序    标签   前缀
----------  -----  --------------------------------
         5      1  2001::/32
        10      4  ::ffff:0:0/96
        20      3  ::/96
        30      1  2002::/16
        40      1  ::/0
        50      0  ::1/128
Apr 06

WordPress的日志自动保存和修订版本功能本来是用来防止文章编辑过程中丢失和多人博客的版本控制的新功能,但是在实际使用过程中,像我的博客就是架设在Heroku上的,免费提供的数据库只有可怜的5M,所以为了更合理的使用数据库的空间,就有必要关闭WordPress的日志自动保存和修订版本功能。关闭这一功能的方法有两种,一种是采用插件的方法,如delete-revision插件,另一种就是直接修改代码。由于我不喜欢使用插件,所以我比较倾向于使用后一种方法,但是使用后一种在Wordpress升级的时候可能会导致被替换掉。对于像我一样使用Heroku这些免费云的用户,代码是通过推送到远方服务器的,不能通过自动更新的进行更新,所以也不担心会被替换掉。

具体的修改方法如下,打开wp-admin文件夹下的post-new.php、post.php、page-new.php和page.php文件,删除或注释掉以下的这行代码:

wp_enqueue_script('autosave');

然后打开根目录下的wp-config.php文件,在

require_once(ABSPATH . 'wp-settings.php')

在这行代码前面的任意地方或者文件的开通添加代码:

define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', false);

另外,对于已经保存到数据库垃圾文件,可以phpMyAdmin里使用SQL语句进行删除,具体的命令如下:

DELETE FROM 'wp_posts' WHERE 'wp_posts'.'post_status' = 'inherit'
DELETE FROM 'wp_posts' WHERE 'wp_posts'.'post_status' = 'auto-draft'
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服务器。

Mar 30

(1).获取最新版的Tor套件
Tor只有0.2.3.12以上的版本才支持IPv6网桥,所以你必须获取最新的Tor。
请访问:
https://www.torproject.org/projects/vidalia.html.en
或者
https://www.torproject.org/projects/obfsproxy.html.en

(2).获取IPv6连接
您的计算机必须能够访问IPv6网站,如果您没有IPv6连接,请搜索“ISATAP”或者“gogo6”的相关教程。

(3).访问这里:https://bridges.torproject.org
这里列出了一个IPv6的Tor网桥。

(4).配置Tor
转到Vidalia控制面板的“高级”,点编辑Torrc,这样就展开了Tor的配置文件
添加这两行
ExcludeNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}
ExcludeExitNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}

Mar 02

无意中看到一个运行在GAE上的CMS程序–GAE Cupboard,作者是意大利的一个程序员,网址为http://www.gaecupboard.com/,大家可以去看看是什么样子的。GAE上的博客程序是很多的,但是CMS程序就没有几款,我个人觉得最好的一款就是Vosao CMS,这是用Java语言写的,但是我一直搞不定模板的问题,稍稍修改就会出问题,一旦出问题后还不好解决,所以就不是很喜欢用。

GAE Cupboard是用Python语言写的,语言简洁,还支持Markdown,是GAE上很好用的一款,而且对系统的消耗也很小,GAE免费的配额基本上够用。

我上传时出现过问题,一直得不到解决,曾给作者发过邮件询问,作者很认真的回复了,说需将下载的markdown和web放在项目所在的根目录,我就是将这两个文件夹放错了位置所以一直没有成功。

布置过程如下:
(1).下载GAE Cupboard的源程序,地址为:
https://github.com/systempuntoout/buckethandle

(2).下载Markdown和web.py的源程序,地址分别为:
https://github.com/waylan/Python-Markdown
https://github.com/webpy/webpy

(3).将解压后的markdown和web文件夹放到GAE Cupboard的根目录下面,解压后的其他文件夹可以不放入。

(4).修改app.yaml中的application ID,修改cron.yaml中的邮件地址,修改/app/config/settings.py文件中的相关设置,主要是application ID与绑定的域名以及其他细节设置。

(5).命令行上传。

最后放上作者网站的截图:

GAE_Cupboard.png