FTP下载地址中特殊符号的转换

要下载FTP中的大文件,一般是转换成完整的下载地址(例如ftp://uername:password@ip:port/dirname/filename)来下载。但这样有时候会产生问题,如果password里面有特殊字符怎么办?

方法很简单,把特殊字符换成16进制的ASCII码即可。

假设现在有个FTP服务器192.168.1.1,用户名zhang3,密码是zhang!@#,我们要下载该服务器上/html/a.rar文件。

如果写成ftp://zhang3:zhang!@#@192.168.1.1:21/html/a.rar的格式,肯定会报错。

那么我们可以写成ftp://zhang3:zhang%21%40%23@192.168.1.1:21/html/a.rar,这样就可以利用wget之类的工具来下载了。

附上一些常见十六进制的ASCII编码:
[code]
ASCII字符 字符中文名 编码后的值
空格 空格 %20
! 感叹号 %21
# 井号 %23
& and %26
@ at %40
/ 斜杠 %2F
: 冒号 %3A
= 等于号 %3D
? 问号 %3F
~ 波浪号 %7E
[/code]

================================================
2015.06.28补充:
其实在Linux上使用wget下载FTP上的文件时,也可以使用如下命令来下载(同样允许password里有特殊字符)
[code]
wget ftp://ip/filename.zip -e login=username -e passwd=’password’
[/code]

博客再次搬家了

CorgiTech家的VPS今天光荣的挂掉了,到目前为止已经整整12小时了,还没有恢复,于是只好又把博客搬到香港的虚拟主机上了。

虽然前几个月就有不稳定的迹像,但我仍不愿换掉CorgiTech VPS,原因在于它家的洛衫矶机房(PR)是亚洲优化机房,直联PCCW(官网说直联中国联通),而我在实际的使用中也感受到了速度的优势,跟香港的主机一样快。从2013年11月换上这家VPS的时候,我就明显感觉到了速度不同于其它的美国主机。可惜今天还是彻底歇菜了。

还好,数据库找回来了,但还是丢失了一些东西,比如修改好的主题等。看来应该是抛弃CorgiTech的时候了。

自从2010年10月搬到BurstNet以后,再没用过虚拟主机了。所以今天搬回虚拟主机,对于这个小博客来说,应该算是一个标志性的事件了吧。

还要吐嘈一下BestWebSoft制作的Captcha,这个垃圾插件,不知道是被破解了还是怎么的,无法拦住垃圾评论了。今天恢复数据库的时候,发现博客的数据库已经有102M的容量了。在本地测试了一下,发现有2000多条垃圾评论处于待审核状态。赶紧删除之,数据库立刻恢复到12M的体积,这才成功的导入了phpMyAdmin。

=============================================

2014.04.24后记:

今天凌晨已经恢复了,相当于挂了整整18个小时,还好,网站文件都找回来了。官方还特意回了我一个TK,说是已经还原了几日前备份的数据,还要不要继续使用CorgiTech呢,我得考虑一下,速度真心优秀啊。

修改WordPress代码高亮插件SyntaxHighlighter的字体大小

SyntaxHighlighter Evolved 是 WordPress 码农必备的一款插件,功能是实现代码高亮显示。这款插件应该是 WordPress 使用量最广泛的一款代码高亮插件了。但该插件的设计人员不知道是怎么想的,用的那么大的字体来显示代码,让原本就复杂的代码看起来眼花缭乱的。特别是当一行代码很长时,更是显得很乱。

要修改 SyntaxHighlighter Evolved 插件的字体,其实很简单,编辑 wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css,修改如下两个地方:
[code lang=”css”]
.syntaxhighlighter a,
.syntaxhighlighter div,
.syntaxhighlighter code,
.syntaxhighlighter table,
.syntaxhighlighter table td,
.syntaxhighlighter table tr,
.syntaxhighlighter table tbody,
.syntaxhighlighter table thead,
.syntaxhighlighter table caption,
.syntaxhighlighter textarea {
-moz-border-radius: 0 0 0 0 !important;
-webkit-border-radius: 0 0 0 0 !important;
background: none !important;
border: 0 !important;
bottom: auto !important;
float: none !important;
height: auto !important;
left: auto !important;
line-height: 1.5em !important; /* 行间距加到1.5em刚刚好 */
margin: 0 !important;
outline: 0 !important;
overflow: visible !important;
padding: 2px !important; /* 加个内边框吧 */
position: static !important;
right: auto !important;
text-align: left !important;
top: auto !important;
vertical-align: baseline !important;
width: auto !important;
box-sizing: content-box !important;
font-family: "Consolas", "Courier New", monospace !important; /* 经测试,这几个字体最美观 */
font-weight: normal !important;
font-style: normal !important;
font-size: 13px !important; /* 这里我改成了13px */
/*min-height: inherit !important; */
/*min-height: auto !important;*/
……
[/code]

定制Apache索引(目录浏览)样式

今天才知道,原来Apache的索引(目录浏览)样式是可以定义的,下面简单介绍一下方法。

1,开启Apache索引(目录浏览)功能
编辑httpd.conf文件:
[code lang=”plain”]
<Directory "/var/www/html">
……
Options Indexes FollowSymLinks
IndexOptions FancyIndexing ScanHTMLTitles FoldersFirst NameWidth=85 DescriptionWidth=128 IconHeight=16 VersionSort Charset=UTF-8
……
AllowOverride None
Order allow,deny
Allow from all
</Directory>
[/code]
在Options选项中写入Indexes,即是打开了目录浏览功能。我的CentOS6中安装好了Apache以后默认就是打开了目录浏览的。但是使用浏览器访问首页,却不能显示出目录,原因在于/etc/httpd/conf.d/welcome.conf文件中的Indexes前面有个减号,原来Apache默认禁止了首页的目录浏览功能。去掉减号,再重启Apache就OK了。

2,定义索引(目录浏览)样式
IndexOptions项定义了索引(目录浏览)的样式,其中:
ScanHTMLTitles 搜索HTML标题
FoldersFirst 目录排在前面
NameWidth=85 表示文件名可以最多显示85个字符
DescriptionWidth=128 表示描述可以显示的字符数
IconHeight=16 小图标的长度
VersionSort 版本排序,如果没有此项,将按照拼音顺序排序
Charset=UTF-8 字符集

3,目录加密
编辑httpd.conf文件:
[code lang=”plain”]
<Directory "/var/www/html">
……

AuthType basic
AuthName "Authorization"
AuthUserFile /var/www/html/.htpasswd
Require user user1
……
</Directory>
[/code]
其中,AuthName是弹出的提示文本,/var/www/html/.htpasswd是记录用户名与密码的文件,equire user指允许登陆的用户名。

管理登陆用户
[code lang=”plain”]
$ htpasswd -c /var/www/html/.htpasswd user1 #回车会要求输入两遍密码,会清除所有用户!
$ htpasswd -bc /var/www/html/.htpasswd user1 password #不用回车,直接指定user1的密码为password
$ htpasswd -b /var/www/html/.htpasswd user2 password #添加一个用户,如果用户已存在,则是修改密码
$ htpasswd -D /var/www/html/.htpasswd user2 #删除用户
[/code]

Welcome to Peer1

This blog is under peer1 now. 换到了所谓的贵族机房……

上一家Oneasiahost也很不错,虽然是OpenVZ的,但20多天来没有宕机过,稳定性非常好;且PING值十分优秀(走PCCW线路),是个不错的服务商。

现在换到了某家的Peer1,性价比相对Oneasiahost更高,先用着看看吧。

优化php参数,加快WordPress速度

这个博客陆陆续续使用过一些美国的VPS,但访问速度一直不能让我满意,使用17CE测试的时候,全国的打开速度普遍在4-10秒左右,原因不明。也曾见过有些WordPress用着美国的空间,没装WP Super Cache等缓存插件,打开速度却维持在2秒左右,让我觉得,自己在优化这方面简直是太菜了。。

今天闲来无事,把Godaddy的免费空间安装了WordPress,拿17ce测试了一下,全国范围的打开速度在2-4秒左右,觉得有些不可思议。论性能,肯定是VPS要超出虚拟主机很多,为什么Godaddy的虚拟主机速度可以这么快……

我把Godaddy的免费空间上传了一个探针,仔细观察了一下,除了CPU、内存很大之外,我发现没有安装Zend Optimizer这个最基本的PHP加速器,当然,像memcache,eAccelerator等肯定也没有。比较奇怪的是发现有几个PHP的参数,跟lnmp一键安装包里面差距挺大。比较显著的是如下两个参数:

max_execution_time:翻译过来就是php脚本的最大执行时间,Godaddy家默认是30秒,但lnmp一键包默认是300秒
memory_limit:这个我的理解为每个php脚本的内存占用限制,但网络上有的说法是所有PHP脚本的内存总限制。Godaddy家默认是64M,但lnmp一键包默认是128M

然后就对比着优化了下,后来发现速度还不错,VPS和Godaddy免空的访问速度基本一样了。这里我给诸位使用lnmp一键安装包的朋友们一个优化方案: 继续阅读