之前由于无法忍受 OmniGroup Sync 死慢死慢的速度,自己在公司内网的服务器上搭建了 WebDAV,并映射到公司的公网 IP 上使用. 现在几乎都是在家办公了,所以需要经常 OpenVPN 到公司的内网里去登陆服务和调试.家中电脑和手机上都设置的 WebDAV 地址是公司的公网地址,一旦 OpenVPN 进公司,OmniFocus 就无法同步了.

一开始犯懒,现在随着需要越来越多的时间切入公司内网干活,就越来越厌烦来回切换 OmniFocus 的同步地址.正好最近把 Blog 的 VPS 服务提供商换成了 Linode,选了 Linode 新建立不久的东京机房,速度很不错,在我这里 2M 的 ADSL 可以达到 400k/s 的下载速度,几乎全速.

干脆将 WebDAV 转移到新租的 Linode VPS 上算了.正好之前配置 WebDAV 和 SSL 的时候都是在 Apache 的官网上胡乱看完胡乱配置成的,这回好好记录下来以便将来翻阅.

  • Install WebDAV Apache2

  • 安装 apache2,php5 及相应的模块

$ sudo apt-get update
$ sudo apt-get install apache2
$ sudo apt-get install php5 libapache2-mod-php5
  • 调用需要用到的模块
$ sudo a2enmod dav_fssudo
$ sudo a2enmod dav
  • Create shared directory

  • 创建需要共享的文件目录

$ sudo mkdir /home/users/webdav
$ sudo chown www-data.www-data /home/users/webdav
  • 创建可以登录的用户和密码
$ sudo htpasswd -c /home/users/passwd.dav users
$ sudo chmod 640 /home/users/passwd.dav
  • Install SSL Apache2

  • 配置 Apache2 SSL:

$ sudo a2enmod ssl
$ sudo openssl req -x509 -newkey rsa:1024 -keyout apache.pem -out apache.pem -nodes -days 999
  • Virtual Sites SSL Configurations

  • 添加配置文件:

$ vim /etc/apache2/sites-enable/default-ssl

在文件中加入以下内容,请根据你的文件存放目录适当修改路径;

<VirtualHost *:443>  
     SSLEngine On
     SSLCertificateFile /etc/apache2/ssl/apache.pem
     DocumentRoot /home/users/webdav
     <Directory /home/users/webdav/>
          Options Indexes MultiViews
          AllowOverride None
          Order allow,deny
          allow from all
     </Directory>
     Alias /webdav /home/users/webdav
     <Location /webdav>
          DAV On
          AuthType Basic
          AuthName "webdav"
          AuthUserFile /home/users/passwd.dav
          Require valid-user
     </Location>
</VirtualHost>  

最后重启 Apache2

$ sudo /etc/init.d/apache2 restart