如何在 Ubuntu 14.04 上使用 Baïkal 通过 CardDAV 和 CalDAV 标准同步日历和联系人

介绍

随着越来越多的人使用多个设备(智能手机,计算机,平板电脑等),保持一切同步的需求不断增加。

虽然同步 文件很重要,但能够在其原生格式中同步日历和联系人也是有用的。

CalDAV 和 CardDAV 标准提供了一个简单的方法来保持我们所有的智能东西与我们正在做的事情的最新,以及如何抓住我们的朋友和其他联系人. 在本教程中,我们将向您展示如何从您控制的服务器同步日历和联系人,使用一个超简单的安装 Baïkal,一个 PHP CalDAV 和 CardDAV 服务器。

** 注意:** 如果您正在寻找一个全部的解决方案,您可能想看看 ownCloud

** 注意:** Baïkal 是快速和容易的,但不是真正为大规模部署而设计的. 如果您想要为中型或大型企业同步日历和联系人,此解决方案可能对您不起作用。

前提条件

请确保你有这些前提条件。

  • 新 Ubuntu 14.04 用 SSH 访问
  • A sudo user
  • Baïkal 指令强烈建议为服务器拥有域名,最好是子域名。本教程将使用域名 dav.example.com. 您可以使用 dav.yourdomain.com. 如果您使用数字海洋托管您的 DNS, 本文可以帮助您设置该子域名

我们还将安装一些贝加尔需要的软件包;我们将使用SSL证书;我们将在文章本身设置这些软件包。

步骤 1 - 安装 Baïkal

要开始,我们将安装一些所需的包,下载Baïkal的包,然后提取它。

在下面的示例中,我们正在使用最新版本的 Baïkal,该版本在写字时为 0.2.7,但我们建议在您开始之前双重检查最新版本的 Baïkal(http://baikal-server.com)。

要开始,你需要将SSH插入你的UbuntuDropplet。

我们会假设这是一个新鲜的Ubuntu安装,所以在我们可以从 repos 安装一些包之前,我们需要用apt-get update更新repo缓存。

1sudo apt-get update

安装一些先决条件包:PHP,Apache和SQLite。

1sudo apt-get install apache2 php5 php5-sqlite sqlite3

注:在Baïkal安装文件中,作者注意到Apache可以被 Nginx取代,SQLite可以被MySQL取代。

现在我们有必要的部件来让贝加尔工作,让贝加尔安装! 因为贝加尔是一个PHP网站的种类,我们将下载并提取它在Apache网站目录, /var/www

1cd /var/www
2sudo wget http://baikal-server.com/get/baikal-regular-0.2.7.tgz
3sudo tar -xvzf baikal-regular-0.2.7.tgz

注: 对于那些想知道我们刚刚告诉‘tar’要做的事情的人来说:‘x’ = extract,‘v’ = verbose,‘z’ = unzip,和‘f’ = file,然后是文件名。

由于我们已经提取了 PHP 应用程序,我们不再需要 tar 文件,所以我们会删除它,将提取的文件夹重新命名为更相关的东西,然后确保它是可读和可写的Apache用户。

1sudo rm baikal-regular-0.2.7.tgz
2sudo mv baikal-regular dav.example.com
3sudo chown -R www-data:www-data dav.example.com

注意:您可以随心所欲命名文件夹,但如果您打算托管多个网站,如果您使用网站名称为网站文件夹,则更容易识别网站。

第2步:设置Apache

我們的應用程式已安裝,現在我們需要告訴Apache關於此事。為了方便事情,Baïkal實際上包含自己的Apache配置檔案作為模板。

1sudo cp /var/www/dav.example.com/Specific/virtualhosts/baikal.apache2 /etc/apache2/sites-available/dav_example_com.conf

使用您最喜欢的文本编辑器,打开dav_example_com.conf文件,并更改所有URL以使用自己的URL,以及您存储网站的路径。

1sudo nano /etc/apache2/sites-available/dav_example_com.conf
 1<VirtualHost *:80>
 2    DocumentRoot /var/www/dav.example.com/html
 3    ServerName dav.example.com
 4
 5    RewriteEngine On
 6    RewriteRule /.well-known/carddav /card.php [R,L]
 7    RewriteRule /.well-known/caldav /cal.php [R,L]
 8
 9    <Directory "/var/www/dav.example.com/html">
10    	Options None
11    	Options +FollowSymlinks
12    	AllowOverride All
13    </Directory>
14</VirtualHost>

现在我们需要一个 SSL 证书

您可以创建或购买您的证书,我们将假设您遵循链接的SSL教程,并且您的密钥和证书位于/etc/apache2/ssl目录中,并被称为apache.crtapache.key

现在我们需要告诉Apache如何使用SSL证书. 为此,我们需要将默认SSL配置文件(‘default-ssl.conf’)与我们的Baïkal配置文件相结合,并命名它为‘dav_example_com-ssl.conf’。

1sudo nano /etc/apache2/sites-available/dav_example_com-ssl.conf
 1<IfModule mod_ssl.c>
 2    <VirtualHost _default_:443>
 3    	ServerAdmin webmaster@localhost
 4
 5    	DocumentRoot /var/www/dav.example.com/html
 6    	ServerName dav.example.com
 7
 8        	RewriteEngine On
 9        	RewriteRule /.well-known/carddav /card.php [R,L]
10        	RewriteRule /.well-known/caldav /cal.php [R,L]
11
12    	<Directory "/var/www/dav.example.com/html">
13    		Options None
14    		Options +FollowSymlinks
15    		AllowOverride All
16    	</Directory>
17
18    	ErrorLog ${APACHE_LOG_DIR}/error.log
19    	CustomLog ${APACHE_LOG_DIR}/access.log combined
20
21    	SSLEngine on
22
23    	SSLCertificateFile	  /etc/apache2/ssl/apache.crt
24    	SSLCertificateKeyFile /etc/apache2/ssl/apache.key
25
26    	<FilesMatch "\.(cgi|shtml|phtml|php)$">
27    			SSLOptions +StdEnvVars
28    	</FilesMatch>
29    	<Directory /usr/lib/cgi-bin>
30    			SSLOptions +StdEnvVars
31    	</Directory>
32
33    	BrowserMatch "MSIE [2-6]" \
34    			nokeepalive ssl-unclean-shutdown \
35    			downgrade-1.0 force-response-1.0
36    	BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
37
38    </VirtualHost>
39</IfModule>

现在我们需要告诉Apache启用重写模块,启用网站,然后最后重新启动以获取新设置。

1sudo a2enmod rewrite
2sudo a2ensite dav_example_com
3sudo a2ensite dav_example_com-ssl
4sudo service apache2 restart

步骤 3 – 配置 Baïkal

我们在命令行上有最后一件事要做,其余的事情可以在网页浏览器中完成。Baikal使用一个名为ENABLE_INSTALL的文件来启用安装的最后一步。在我们打开网页浏览器之前,让我们确保这个文件存在。

1sudo touch /var/www/dav.example.com/Specific/ENABLE_INSTALL

我们已经准备好打开一个浏览器,并完成Baïkal的设置。在您最喜欢的浏览器中导航到 https://dav.example.com

Baïkal initialization wizard

一旦你在那里,你将被呈现一个选项屏幕. 使用下载菜单设置你的时区,创建一个新的管理员密码(你需要输入两次),并留下其他一切与默认设置。

点击保存变化按钮。

在下一个屏幕上,您可以选择默认的 SQLite 设置或启用 MySQL 支持。

Baïkal Database setup

如果您选择使用MySQL,您可以启用此支持(使用MySQL作为后端将为此工具提供更大的容量和更高的性能,但如果这个DAV服务器只是为您,您的家人和朋友,或一个小型企业,SQLite应该做得很好。

对于这个例子,我们将留下 SQLite 默认启用,并点击此页面上的 ** 保存更改 ** 按钮。

然后你会看到选项 开始使用Baykal;点击此按钮。

Start using Baïkal

您将被带到贝加尔主页。

注意: 如果您看到默认的Apache网站而不是您的Baïkal网站,您需要禁用默认的Apache网站并重新启动Apache。

步骤4:创建用户

在运行初始设置后,剩下的只是创建用户,然后连接您的客户端以开始同步。

要创建用户,请使用用户名 admin和您在上面的配置步骤中设置的密码登录 Baïkal 网站。

应用程序的第一个页面是仪表板. 它显示了什么是启用和运行,以及一些基本的统计数据,如用户数量,日历和联系人。

创建用户是一个 _three click 过程。

  1. 在页面顶部,点击链接 用户和资源 2 现在点击右侧的按钮, + 添加用户 3 填写所有字段,然后点击 ** 保存更改 ** 按钮

Users form; fill out the fields as desired

** 注意:** 服务器侧对用户名格式化没有任何要求,但有些客户端可能会抱怨如果用户名看起来不像电子邮件地址,例如: [email protected]

故障解析

如果您遇到任何问题,例如您的管理员密码未被接受,那么您可以运行几个命令来重置应用程序,允许您重新设置它。

**除非您想要重置服务器,否则不要这样做。

1cd /var/www/dav.example.com/Specific/
2sudo rm config*.php
3sudo touch ENABLE_INSTALL

现在你可以跳回网页浏览器并再次通过应用程序设置向导,希望这一次一切都起作用。

结论

恭喜您!您已安装了与 GUI 控制面板相同的 CalDAV 和 CardDAV 同步服务器. 此时您可以配置客户端连接到服务器。 这样做时,请使用 https://dav.example.com 作为您的主机名。

Published At
Categories with 技术
comments powered by Disqus