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编码:

ASCII字符	字符中文名	编码后的值
空格              空格             %20
!                感叹号            %21
#                 井号             %23
&                 and              %26
@                 at               %40
/                 斜杠             %2F
:                 冒号             %3A
=                等于号            %3D
?                 问号             %3F
~                波浪号            %7E

================================================
2015.06.28补充:
其实在Linux上使用wget下载FTP上的文件时,也可以使用如下命令来下载(同样允许password里有特殊字符)

wget ftp://ip/filename.zip -e login=username -e passwd='password'

博客再次搬家了

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,修改如下两个地方:

.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;*/
……

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

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

1,开启Apache索引(目录浏览)功能
编辑httpd.conf文件:

<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>

在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文件:

<Directory "/var/www/html">
……

     AuthType basic
     AuthName "Authorization"
     AuthUserFile /var/www/html/.htpasswd
     Require user user1
……
</Directory>

其中,AuthName是弹出的提示文本,/var/www/html/.htpasswd是记录用户名与密码的文件,equire user指允许登陆的用户名。

管理登陆用户

$ 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  #删除用户

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一键安装包的朋友们一个优化方案: 继续阅读

Page 1 of 11123456...10...Last »