序章

複数のデバイス(スマートフォン、コンピューター、タブレットなど)を使用する人が増えるにつれ、すべてのものを同期させる必要性が高まっています。

ファイルを同期することは重要ですが、カレンダーと連絡先をネイティブ形式で同期できることも便利です。

CalDAVおよびCardDAV標準は、すべてのスマートなことを最新の状態に保つための簡単な方法と、友人や他の連絡先を把握する方法を提供します。 このチュートリアルでは、PHP CalDAVおよびCardDAVサーバーであるBaïkalの非常に簡単なインストールを使用して、制御するサーバーからカレンダーと連絡先を同期する方法を示します。

注:オールインワンソリューションをお探しの場合は、代わりにownCloudをご覧ください。

注:バイカルはすばやく簡単に実行できますが、大規模な展開用に設計されているわけではありません。 中規模または大規模のビジネスでカレンダーと連絡先の同期が必要な場合、このソリューションはうまく機能しない可能性があります。

前提条件

これらの前提条件が整っていることを確認してください。

  • SSHアクセス付きの新しいUbuntu14.04ドロップレット
  • sudoユーザー
  • バイカルの指示では、サーバー用のドメイン、できればサブドメインを用意することを強くお勧めします。 このチュートリアルでは、ドメイン名dav.example.comを使用します。 dav.yourdomain.comを使用できます。 DNSをDigitalOceanでホストしている場合、この記事はそのサブドメインの設定に役立ちます

また、バイカルが必要とするいくつかのパッケージをインストールします。 SSL証明書を使用します。 記事自体でそれらを設定する方法について説明します。 SSL証明書を購入する場合は、Baïkalサーバーのドメインまたはサブドメイン用に購入する必要があります。

ステップ1—バイカルのインストール

開始するには、いくつかの必要なパッケージをインストールし、バイカルのtarballをダウンロードして、それを抽出します。

以下の例では、最新バージョンのバイカルを使用しています。これは、執筆時点では 0.2.7 ですが、最新のバージョンのバイカルを再確認することをお勧めします。始めましょう。 最新バージョンを見つけるには、Baïkalサイトにアクセスし、ダウンロードして開始ボタンをクリックするか、GetBaïkalセクションまでスクロールします。 新しいバージョンがある場合は、通常パッケージのダウンロードリンクをコピーしてください。

開始するには、UbuntuドロップレットにSSHで接続する必要があります。

それでは、バイカルが実行する必要のあるパッケージをインストールしましょう。 これはUbuntuの新規インストールであると想定するため、リポジトリからいくつかのパッケージをインストールする前に、apt-get updateでリポジトリキャッシュを更新する必要があります。

sudo apt-get update

PHP、Apache、SQLiteなどの前提条件パッケージをインストールします。

sudo apt-get install apache2 php5 php5-sqlite sqlite3

注:バイカルインストールファイルで、作成者は、ApacheをNginxに置き換え、SQLiteをMySQLに置き換えることができると述べています。

Baïkalを機能させるために必要な部品が揃ったので、Baïkalをインストールしましょう! Baïkalは一種のPHPWebサイトであるため、Apacheサイトディレクトリ/var/wwwにダウンロードして抽出します。

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

注: tarに指示した内容を知りたい場合は、x = e x tract、[ X113X] = v erbose、z = un z ip、およびf = f ile、その後にファイル名前。

最後のステップとバイカルはインストールされます。 PHPアプリを抽出したので、tarファイルはもう必要ありません。そのため、それを削除し、抽出したフォルダーの名前をより関連性の高いものに変更してから、Apacheユーザーが読み取りと書き込みができることを確認します。

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

注:フォルダーには任意の名前を付けることができますが、複数のサイトをホストする場合は、WebサイトフォルダーにWebサイト名を使用すると、サイトを識別するのがはるかに簡単になります。

ステップ2—Apacheを設定する

アプリケーションがインストールされたので、Apacheにそのことを伝える必要があります。 簡単にするために、Baïkalには実際には独自のApache構成ファイルがテンプレートとして含まれています。 そのファイルをApachesites-availableディレクトリにコピーしてから、サイトに合わせて編集します。

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

お気に入りのテキストエディタを使用して、dav_example_com.confファイルを開き、すべてのURLを変更して、独自のURLと、サイトを保存した場所へのパスを使用します。 外観は次のとおりです。

sudo nano /etc/apache2/sites-available/dav_example_com.conf
<VirtualHost *:80>
	DocumentRoot /var/www/dav.example.com/html
	ServerName dav.example.com

	RewriteEngine On
	RewriteRule /.well-known/carddav /card.php [R,L]
	RewriteRule /.well-known/caldav /cal.php [R,L]

	<Directory "/var/www/dav.example.com/html">
		Options None
		Options +FollowSymlinks
		AllowOverride All
	</Directory>
</VirtualHost>

次に、SSL証明書が必要になります。

証明書を作成または購入できます。 リンクされたSSLチュートリアルに従い、キーと証明書が/etc/apache2/sslディレクトリにあり、apache.crtおよびapache.keyと呼ばれていることを前提としています。 必要に応じて、これらを独自の証明書とキーへのパスに置き換えてください。

次に、SSL証明書の使用方法をApacheに指示する必要があります。 このために、デフォルトのSSL構成ファイル(default-ssl.conf)をBaïkal構成ファイルと組み合わせて、dav_example_com-ssl.confという名前を付ける必要があります。 以下は、すべてのコメントが削除された、どのように見えるかの例です。

sudo nano /etc/apache2/sites-available/dav_example_com-ssl.conf
<IfModule mod_ssl.c>
	<VirtualHost _default_:443>
		ServerAdmin webmaster@localhost

		DocumentRoot /var/www/dav.example.com/html
		ServerName dav.example.com

        	RewriteEngine On
        	RewriteRule /.well-known/carddav /card.php [R,L]
        	RewriteRule /.well-known/caldav /cal.php [R,L]

		<Directory "/var/www/dav.example.com/html">
			Options None
			Options +FollowSymlinks
			AllowOverride All
		</Directory>

		ErrorLog ${APACHE_LOG_DIR}/error.log
		CustomLog ${APACHE_LOG_DIR}/access.log combined

		SSLEngine on

		SSLCertificateFile	  /etc/apache2/ssl/apache.crt
		SSLCertificateKeyFile /etc/apache2/ssl/apache.key

		<FilesMatch "\.(cgi|shtml|phtml|php)$">
				SSLOptions +StdEnvVars
		</FilesMatch>
		<Directory /usr/lib/cgi-bin>
				SSLOptions +StdEnvVars
		</Directory>

		BrowserMatch "MSIE [2-6]" \
				nokeepalive ssl-unclean-shutdown \
				downgrade-1.0 force-response-1.0
		BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

	</VirtualHost>
</IfModule>

私たちは家にいます。 サイトがインストールされ、適切なApache構成が作成されました。 次に、Apacheにrewriteモジュールを有効にし、サイトを有効にしてから、最後に再起動して新しい設定をロードするように指示する必要があります。

sudo a2enmod rewrite
sudo a2ensite dav_example_com
sudo a2ensite dav_example_com-ssl
sudo service apache2 restart

ステップ3—バイカルの設定

コマンドラインで最後に行うことは1つあり、残りはWebブラウザーで実行できます。 BaïkalはENABLE_INSTALLというファイルを使用して、インストールの最終ステップを有効にします。 Webブラウザーを開く前に、このファイルが存在することを確認しましょう。 touchを使用して、ファイルが存在しない場合はファイルを作成し、すでに存在する場合は、変更日を更新するだけです。

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

それでおしまい! ブラウザを開いて、バイカルのセットアップを完了する準備ができました。 お気に入りのブラウザで、https://dav.example.comに移動します。

Baïkal initialization wizard

そこに着くと、オプションのある画面が表示されます。 ドロップダウンメニューを使用してタイムゾーンを設定し、新しい管理者パスワードを作成し(2回入力する必要があります)、その他はすべてデフォルト設定のままにします。

変更を保存ボタンをクリックします。

次の画面で、デフォルトのSQLite設定を選択するか、MySQLサポートを有効にすることができます。

Baïkal Database setup

MySQLの使用を選択した場合は、そのサポートを有効にできます。 (MySQLをバックエンドとして使用すると、このツールの容量とパフォーマンスが向上しますが、このDAVサーバーがあなた、家族、友人、または中小企業に適している場合は、SQLiteで問題ありません。)

この例では、SQLiteのデフォルトを有効のままにして、このページの[変更を保存]ボタンもクリックします。

次に、バイカルの使用を開始するオプションが表示されます。 このボタンをクリックします。

Start using Baïkal

バイカルのホームページに移動します。

注:バイカルWebサイトの代わりにデフォルトのApache Webサイトが表示される場合は、デフォルトのApache Webサイトを無効にして、Apacheを再起動する必要があります。 物事は今働き始めるはずです。

sudo a2dissite 000-default.conf
sudo service apache2 reload

ステップ4—ユーザーの作成

初期設定を実行した後、あとはユーザーを作成し、クライアントを接続して同期を開始するだけです。

ユーザーを作成するには、ユーザー名adminと上記の構成手順で設定したパスワードを使用してBaïkalWebサイトにログインします。

アプリケーションの最初のページはダッシュボードです。 何が有効で実行されているか、およびユーザー数、カレンダー、連絡先などのいくつかの基本的な統計情報が表示されます。

ユーザーの作成は、3クリックプロセスです。

  1. ページの上部にあるリンクユーザーとリソースをクリックします
  2. 次に、右側のボタン+ユーザーの追加をクリックします。
  3. すべてのフィールドに入力し、変更を保存ボタンをクリックします

Users form; fill out the fields as desired

注:ユーザー名のフォーマットに関するサーバー側の要件はありませんが、ユーザー名が電子メールアドレスのように見えない場合、 sammy@exampleのように一部のクライアントが文句を言う場合があります。 .com

トラブルシューティング

管理者パスワードが受け入れられないなどの問題が発生した場合は、アプリをリセットして再設定できるようにするために実行できるコマンドがいくつかあります。 これを行うには、次のコマンドを実行するためにDropletにSSHで接続する必要があります。

サーバーをリセットする場合を除いて、これを行わないでください。

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

これで、Webブラウザーに戻って、アプリのセットアップウィザードを再度実行できます。今回は、すべてが機能することを願っています。

結論

おめでとう! GUIコントロールパネルを備えたCalDAVおよびCardDAV同期サーバーをインストールしました。 この時点で、サーバーに接続するようにクライアントを構成できます。 その際、ホスト名としてhttps://dav.example.comを使用してください。