Hubzillaのインストール
目次
はじめに
Hubzillaは脱中心なウェブサイトを作るためのプラットフォーム。 INSTALL.txtに沿ってインストールをしてみる。
テスト環境
Slackware Linux x86_64 14.1
ドメインの用意
ドメインまたはサブドメインのルートにしかインストールできないので、Hubzilla用のドメインまたはサブドメインを用意しておく。
要件
- Apache
mod-rewrite
の有効化が必要。AllowOverride All
にしておく。
- PHP 5.5以降
php.ini
でregister_argc_argv
をtrue
にして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ボタンを押す。これで、接続は完了である。