序章

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

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

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

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

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

前提条件

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

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

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

ステップ1—Baïkalをインストールする

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

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

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

次に、Baïkalが実行する必要のあるパッケージをインストールしましょう。 これは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、 v = v erbose、 z = un z ip、および f = f ileの後に、ファイル名が続きます。

最後の1つのステップで、Baïkalがインストールされます。 PHPアプリを抽出したので、tarファイルはもう必要ありません。そのため、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構成ファイルがテンプレートとして含まれています。 そのファイルをApacheにコピーします sites-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.crtapache.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ブラウザーで実行できます。 バイカルはと呼ばれるファイルを使用します ENABLE_INSTALL インストールの最終ステップを有効にします。 Webブラウザーを開く前に、このファイルが存在することを確認しましょう。 使用します touch ファイルが存在しない場合はファイルを作成し、すでに存在する場合は、変更日を更新するだけです。

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

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

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

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

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

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

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

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

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

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

sudo a2dissite 000-default.conf
sudo service apache2 reload

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

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

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

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

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

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

注:サーバー側でユーザー名のフォーマットに関する要件はありませんが、ユーザー名がメールアドレスのように見えない場合、 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 ホスト名として。