在 Ubuntu 上安装配置 ProFTPD

1. 安装

1
apt-get -y install proftpd

2. 配置用户

嗯,我的 ProFTPD 是给某些同学用来修改网页的,所以并不需要使用系统用户来登录。

先创建下用户

1
2
3
cd /etc/proftpd
ftpasswd --passwd --name=foo --home=/www/foo --shell=/bin/false --uid=33 --gid=33
ftpasswd --group --name=bar --gid=33 --member=foo

嗯,需要解释一下的是上面的 uid 和 gid 是我系统里 www-data 用户的。因为 /www/foo 这个目录的 Owner 是这货。可以用以下命令查看它的 uid 和 gid。

1
cat /etc/passwd | grep www-data

然后我们修改下 proftpd.conf,加上这几行:

1
2
3
RequireValidShell  off
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group

3. 安全设置

为了安全起见,我们需要把用户限制在自己的家目录里,在 proftpd.conf 里加上这一行:

1
DefaultRoot			~

另外可以不显示服务器标记

1
ServerIdent			off

全部完成后 sudo invoke-rc.d proftpd restart 下即可

'解决 Apache2 自动补全扩展名的问题'

下午在 Mac 上测试某 Wordpress 站的时候,发现一件很诡异的事情:

如果存在 news.php,那么 Safari 访问 http://wp3.dev/news 的时候会直接访问 news.php 而不执行 URL Rewrite 规则。

祭出 curl 看看 Header :

1
2
3
4
5
6
7
HTTP/1.1 200 OK
Date: Tue, 23 Apr 2013 10:12:23 GMT
Server: Apache/2.2.22 (Unix) DAV/2 PHP/5.4.6 mod_ssl/2.2.22 OpenSSL/0.9.8r
Content-Location: news.php
Vary: negotiate
TCN: choice
X-Powered-By: PHP/5.4.6

看到 Vary: negotiate 这行了咩?

这是因为 Apache2 打开了 MultiViews,所以服务器自动为我们选择了一个最适合的文件返回了。

知道问题在哪儿解决起来就很方便咯,在 Directory 段的 Options 配置项上去掉 MultiViews ,然后重启下 Apache2 就完成了。

PS: Mountain Lion 下一般是在 /private/etc/apache2/httpd-vhosts.conf 或者 /private/etc/apache2/users 里面,不知道长得什么样的话…… 举个栗子好了。

1
2
3
4
5
6
<Directory "/Users/swanaveline/Sites/wp3/public_html">
Options Indexes MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

dotjs 是个好东西

dotjs 跳过各种 XXX 网站的广告真是太方便了。。。

比如某些下种子的站点,会弹广告。

1
2
3
4
5
6
document.forms[0].onsubmit = function() {};
document.forms[0].submit();
window.setTimeout(function(){
window.open('', '_self', '');
window.close();
}, 1000);

搞定,打开后直接下载然后自动关闭窗口。

又比如说 爱自由 这种节操爆表的网站,居然禁止右键和点击,太无聊了。

1
2
document.body.onselectstart = null;
document.body.oncontextmenu = null;

两行 OK 了。

嗯,真是好用。。。

PS: 以上的网站脚本可以在 https://github.com/ym/dotjs 下载