Friendica のインストール

私たち開発チームは、ごく一般的なホスティングプラットフォーム、たとえば WordPress のブログや Drupal のウェブサイトを置くのに使われるホスティングプラットフォームで Friendica が動作するようにするために、特に力を注いできました。ただし、Friendica は単なる Web アプリケーションではありません。Friendica は、どちらかと言えば Web サーバーより電子メールサーバーに近い複雑な通信システムです。Friendica では、信頼性とパフォーマンスを確保するために、メッセージはバックグラウンドで送信され、サイトがダウンしているときは、あとで配送できるようキューに入れられます。こうした機能を実現するには、ホスティングシステム側でも、典型的なブログをサポートする以上の機能が必要になります。具体的には、必ずしもすべての PHP/MySQL ホスティングプロバイダで Friendica を実行できるわけではありません。多くのプロバイダでは実行可能でしょう。実際の可否については、まず Friendica の要件を参照し、これらの要件を満たしているかどうか、Friendica のインストール前にホスティングプロバイダに確認してください。

また、インストール時に問題に遭遇したら、フォーラム http://groups.google.com/group/friendica に投稿するか、http://bugs.friendica.com で課題を登録してください。今後、問題が発生しないようにするためにも、操作環境についてはできるだけ明確に、表示されたエラーメッセージについては可能な限り詳しく教えてください。現在ではオペレーティングシステムと PHP プラットフォームの組み合わせも多数存在しているので、問題が発生した特定の PHP システムをデバッグしたり、不足しているモジュールを手に入れたりするのには限界があるかもしれませんが、一般的なコードの問題を解消するために最善を尽くしたいと思っています。

まず最初に、サーバーで使うドメイン名またはサブドメイン名を選んでください。ドメイン名またはサブドメイン名をインストール後に変更することは、現時点ではサポートされていないので、注意してください。インストール後にドメイン名やサブドメイン名を変更すると、いろいろな部分が動作しなくなり、一部の友達からあなたにコンタクトできなくなる可能性があります。この制限については、将来のリリースで対処する予定です。

  1. 必要なもの

    • Apache。mod-rewrite が有効になっていること、および "Options All" が指定されていてローカルな .htaccess ファイルが使用できるようになっていること。
    • PHP 5.2以降。バージョンは新しければ新しいほどよいです。キ−交換のやり取りを暗号化するには、5.3 が必要です。Windows 環境では、関数 dns_get_record() が 5.3 でしか利用できないので、5.2+ では動作しないかもしれません。
      • PHP コマンドラインアクセス。php.ini で register_argc_argv が true に設定されていること。
      • curl、gd、mysql、および openssl 拡張。
      • PHP mail() が動作できるようにするための何らかの電子メールサーバーまたは電子メールゲートウェイ。
      • mcrypt (省略可能。サーバー間メッセージの暗号化に使われます)。
    • Mysql 5.x
    • cron (Linux/Mac) またはスケジュールされたタスク (Windows) を使ってジョブをスケジュールできること [注: その他の方法についてはこのドキュメントの手順 7. で説明しています]。
    • トップレベルドメインまたはサブドメイン (URL にディレクトリ/パス部分が含まれないもの) へのインストールが望ましい。ディレクトリパスでは使い勝手が損なわれるほか、十分にテストも行われていません。[Dreamhost.com では、必要なホスティング機能を手頃な料金で提供しています。自分の使っているホスティングプロバイダが Unix のシェルアクセスを許可していない場合、一部動作に制限が生じることがあります。]
  2. Friendica のファイルを Web サーバーのドキュメントルートに展開します。

    • もし可能なら、パッケージ化された tar ファイルや zip ファイルではなく、git を使ってソースリポジトリをクローンすることを推奨します。この方法を使うと、ソフトウェアの更新もはるかに簡単になります。Linux 上でリポジトリを "mywebsite" ディレクトリにクローンするコマンドは、次のようになります。

      git clone https://github.com/friendica/friendica.git mywebsite

    • リポジトリをクローンした後は、次のコマンドを実行するだけで、いつでもソフトウェアを最新の状態にすることができます。

      git pull

    • アドオンのインストール方法

      • まず最初に、次の要領で Web サイトのフォルダに移動する必要があります。

        cd mywebsite

      • ついで、次のコマンドを使って、アドオンリポジトリを (別個に) クローンする必要があります。

        git clone https://github.com/friendica/friendica-addons.git addon

      • アドオンツリーを最新の状態にするには、アドオンツリーのある場所に移動して、git pull を実行する必要があります。

        cd mywebsite/addon

        git pull

    • ディレクトリツリーを Web サーバーにコピーする場合は、.htaccess も忘れずにコピーしてください。.htaccess のようなドットファイルはしばしば隠しファイルとして扱われ、通常はコピーされないからです。

  3. 空のデータベースを作成し、データベースにアクセスするのに必要な情報 (ホスト名、ユーザー名、パスワード、データベース名) をメモしておきます。

  4. ブラウザで Web サイトにアクセスし、画面に表示される指示に従って操作します。エラーメッセージが表示されたら、先へ進む前にエラーを修正してください。

  5. もし何らかの理由で自動インストールが失敗した場合は、以下の点をチェックしてください。

    • ".htconfig.php" が存在すること ... 存在しない場合は、htconfig.php を編集し、システムの設定を変更します。ファイル名を .htconfig.php に変更します。
    • データベースにデータが入力されていること ... データが入力されていない場合は、phpmyadmin または mysql のコマンドラインを使って "database.sql" の内容をインポートします。
  6. ここまでの手順が済んだら、再度 Web サイトにアクセスし、自分の個人アカウントを登録します。登録エラーはすべて自動的に回復可能になっているはずです。もしこの手順で何らかの致命的エラーが発生した場合、データベースが適切にインストールされていないことが一般的な原因として考えられます。この場合は、.htconfig.php を別の名前に変更し、データベーステーブルを (drop して) 空にして、インストールの手順を最初からやり直せるようにするとよいでしょう。

  7. バックグラウンド処理を実行できるよう、poller を 5-10 分ごとに実行する cron ジョブまたはスケジュールされたタスクをセットアップします。次に例を示します。

    cd /base/directory; /path/to/php include/poller.php

    上の "/base/directory" と "/path/to/php" は、適切なパスに変更してください。

    Linux サーバーを使っている場合は、"crontab -e" を実行し、次の行のパスと設定の部分を適切に変更したものを追加します。

    */10 * * * * cd /home/myname/mywebsite; /usr/bin/php include/poller.php

    通常は "which php" を実行すれば、PHP のある場所がわかります。この手順で問題にぶつかった場合の対処方法については、ホスティングプロバイダに問い合わせてください。この手順を実行できないと、Friendica は適切に動作しません。

    別の方法: 最近の Friendica リリースを使っている場合は、この手順を実行するのに 'poormancron' プラグインを使用できます。それには、ファイル ".htconfig.php" を開いてプラグインの設定を行っている行を探します。インストールしたばかりの状態では、およそ次のような内容の行があるはずです。

    $a->config['system']['addon'] = 'js_upload';

    これは、"js_upload" アドオンモジュールが有効にされていることを示します。この同じ行を使ってアドオン/プラグインをさらに追加することができます。ここでは、行の内容を次のように変更してください。

    $a->config['system']['addon'] = 'js_upload,poormancron';

    変更したら、ファイルを保存します。