Hubzillaのインストール

提供: Akionux-wiki
Share/Save/Bookmark
移動: 案内検索

はじめに

Hubzillaは脱中心なウェブサイトを作るためのプラットフォーム。 INSTALL.txtに沿ってインストールをしてみる。

テスト環境

Slackware Linux x86_64 14.1

ドメインの用意

ドメインまたはサブドメインのルートにしかインストールできないので、Hubzilla用のドメインまたはサブドメインを用意しておく。

要件

  • Apache
    • mod-rewriteの有効化が必要。
    • AllowOverride Allにしておく。
  • PHP 5.5以降
    • php.iniregister_argc_argvtrueにしてPHPのコマンドラインアクセスを有効にする。
    • curl, gd(少なくともjpegとpngのサポートが必要), mysqli, mbstring, xmlおよびopenssl
  • PHPのmail()で使えるメールサーバまたはゲートウェイ。
  • データベースサーバ(Mysql 5.xまたはMariaDBまたはpostgres)
  • cronによるジョブスケジューリング。
  • 先述のように、ドメインまたはサブドメインのルートへのインストールができること。

インストール

適当な場所(ここでは、/srv/hub.example.comとした)にgit clone

cd /srv
sudo git clone https://github.com/redmatrix/hubzilla.git hub.example.com

所有権をWebサーバのグループとユーザ(ここではグループapache・ユーザapache)に与える

sudo chown -R apache:apache hub.example.com

store/[data]/smarty3というフォルダを作る

cd hub.example.com
mkdir -p "store/[data]/smarty3"

storeディレクトリは、Webサーバのユーザが読み書きできるようにしておく

chmod -R 777 store

アドオンリポジトリをクローンする

util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git hzaddons

空のデータベースを用意する。以下はMariaDBの場合の例:

mysqladmin -u "root" -p create hubzilla
mysql -u root -p

MariaDB [(none)]> GRANT ALL on hubzilla.* TO 'hubzilla'@'localhost' IDENTIFIED BY 'agoodpassword';
Query OK, 0 rows affected (0.10 sec)

MariaDB [(none)]> quit;
Bye

あとは、apacheの設定をする。 Slackwareでバーチャルホストを利用し、SSLの有効化httpからhttpsへの書き換えをする/etc/httpd/extra/httpd-vhosts.confへの設定例:

# hubzilla
# rewrite http to https
<VirtualHost *:80>
        DocumentRoot /srv/hub.example.com
        ServerName hub.example.com
        ErrorLog /var/log/httpd/hub.example.com-error_log
        CustomLog /var/log/httpd/hub.example.com-access_log common
        <IfModule rewrite_module>
        RewriteEngine On
        RewriteCond %{SERVER_PORT} 80
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
        </IfModule>
</VirtualHost>
<VirtualHost *:443>
        DocumentRoot /srv/hub.example.com
        ServerName hub.example.com:443
        ErrorLog /var/log/httpd/hub.example.com-error_log
        CustomLog /var/log/httpd/hub.example.com-access_log common

        <IfModule dir_module>
                DirectoryIndex index.php index.html
        </IfModule>
        <Directory /srv/hub.example.com>
                Options +FollowSymLinks
                AllowOverride All
                Require all granted
        </Directory>

        #SSL Engine Switch:
        #Enable/Disable SSL for this virtual host.
        SSLEngine on

        #   Server Private Key:
        #   If the key is not combined with the certificate, use this
        #   directive to point at the key file.  Keep in mind that if
        #   you've both a RSA and a DSA private key you can configure
        #   both in parallel (to also allow the use of DSA ciphers, etc.)
        SSLCertificateFile "/etc/letsencrypt/live/example.com/cert.pem"
        SSLCertificateKeyFile "/etc/letsencrypt/live/example.com/privkey.pem"
        SSLCertificateChainFile "/etc/letsencrypt/live/example.com/chain.pem"
</VirtualHost>

apacheを再起動

sudo /etc/rc.d/rc.httpd restart

そして、サイト(上記の例では、https://hub.example.com)にアクセスする。 システムチェックが出てくるので、Nextで次に進み、データベースの情報(場所はlocalhost,ポートはデフォルトの0,ユーザ名・パスワード・データベース名)を入力し次に進み、 管理者のメールアドレス、サイトのアドレス、タイムゾーンを選択し、submitを押す。 成功すれば、"Your site database has been installed."というのが出てくる。

最後に、cronでバックグラウンド処理とメンテナンスをするスケジュールを入れる。

sudo crontab -e
# Hubzilla
*/10 * * * * cd /srv/hub.example.com; /usr/bin/php Zotlabs/Daemon/Master.php Cron

/usr/bin/phpはシステムの適切なphpのパスを入れる。

これで設定は終わりなので、registrationページでユーザ登録をすれば使える。

アップデート

本体のアップデートはHubzillaを置いたディレクトリで、git pull:

git pull

プラグインをアップデートするには、

util/update_addon_repo hzaddons

を実行する。

その他の設定

ユーザ登録の設定

Administration - Siteのregistrationで新規ユーザ登録の可否、招待のみなどの設定ができる。

ログファイルの設定

Administration - Logsの"Log file"にWebサーバのユーザが書き込み可能な出力先を指定する。

ドキュメントを検索可能にする

Hubzillaを置いたディレクトリで、

util/importdoc

を実行する。

PubSubHubBubプラグイン

GNU socialやFriendicaからHubzillaのユーザをフォローできるようにするには、PuSH機能を使えるようにするためにPubSubHubBubプラグインを有効にして、 HubzillaユーザのSettingsのFeature/Addon Settings→GNU-Social Protocol Settingsで"Enable the (experimental) GNU-Social protocol for this channel"を有効にしてSubmitする必要がある。 ただし、2016年7月10日現在Experimentalでunsupportedなので、今のところどうもうまく機能しないらしい。

GNU socialのアカウントに接続する

少し面倒だが、GNU social ConnectorというプラグインでHubzillaでの投稿を同時にGNU socialアカウントに投稿するように設定できる。

  • GNU socialインスタンス側の作業

クラシックなGNU socialインターフェース(つまり、Qvitterを使っていない状態)で「設定」→「接続」に行って、右のほうにある「OAuth クライアントアプリケーションの登録」をクリック。そして"Register a new application"をクリックして新しいアプリケーションの情報を入力する画面が出るので、Hubzillaインスタンスの名前、適当な説明(「○○のHubzillaインスタンス」とか適当で良い)、ソースURL(ここには、HubzillaインスタンスのURLを入れる)、組織(Hubzillaインスタンスの所有者/組織の名前)、ホームページ(Hubzillaインスタンスの所有者/組織のホームページ)、Callback URLは空で良くて、チェックボタンは「デスクトップ」と「リードライト」を選択して、「保存」ボタンを押す。 すると、「あなたが登録したアプリケーション」に登録したHubzillaインスタンスの名前が出るので、名前の部分をクリックするとConsumer keyとConsumer secretが表示される。

  • Hubzilla側の作業

Administration - PluginsでGNU social Connectorというプラグインにチェックを入れる。 Site AdminのPlugin Featuresのところに"statusnet"という項目が出るので、それをクリックする。 "Site name"に先ほど作業したGNU socialインスタンスの名前(例:gnusocial.example.net)、"Api url"に先ほど作業したGNU socialインスタンスのURLの最後に/api/を付けたURL(https:://gnusocial.example.net/api/のようになるはず。最後に/を忘れないように)、"Application name"に先ほどGNU social側で登録したHubzillaインスタンスの名前を入れて、Submitボタンを押して登録する。

この時点で、GNU socialインスタンスがHubzillaインスタンスに登録されたので、あとはユーザ個別にHubzillaへの投稿をGNU socialインスタンスにも投稿する設定をする。 Hubzillaユーザのアバターをクリックしたら出てくる"Settings"から、"Feature/Addon Settings"というのをクリックすると"GNU social Post Settings"というのが出るのでクリックし、GNU socialインスタンスの名前(例:gnusocial.example.net)をチェックしてSubmitボタンを押す。 そして再び"GNU social Post Settings"をクリックすると"Sign in with GNU social"という画像を押すとGNU socialのページに飛んで、接続を「許可」をクリックすると、セキュリティコードが出るので、それを先程のHubzillaの"Copy the security code from GNU social here"に入れて、Submitボタンを押す。これで、接続は完了である。