IT pass HikiWiki - [Memo2020][ITPASS]Hiki のインストールと設定 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
= Hiki のインストールと設定
* ~itpass/ftp/server/2018/hiki-update-files-2018 (2014 年度に村上(真)さんが用意してくださったファイルに変更を加えたもの)に 2018 年度のサーバ再構築作業で使ったファイルがあるので, それを使用する.
#* git log を確認したところ, 2016 年 1 月に Hiki が更新され, ディレクトリの構造が変わっている.
# * 具体的には, /usr/local/hiki の下に昨年度までにはなかった lib/hiki ディレクトリがあり, いくつかのファイルやディレクトリが /usr/local/hiki から #/usr/local/hiki/lib/hiki に移動したようである
== Hiki のインストール
* ファイルの取得
* hiki をインストールした.
# # apt-get install libmariadbclient-dev を追記する.
# apt-get install bundler ruby-dev libmysqld-dev
だとうまくいかなかったので
# apt-get install bundler ruby-dev libmariadbd-dev
とした.
# apt-get install libmariadbclient-dev
# apt-get autoremove (不要なパッケージを削除)
# rehash (bash では不要)
# cd /usr/local/
# git clone https://github.com/hiki/hiki.git
# cd hiki
# bundle install
# ln -s hikiconf.rb.sample hikiconf.rb.sample.ja
# * 途中以下のメッセージがでるが先に進む.
# Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing #your bundle as root will break this application for all non-root users on this #machine.
* ika-itpass の ~itpass/ftp/server/2018/hiki-update-files-2018 をディレクトリごと/usr/local/hiki/ に置いた.
== hiki の環境設定
* Table を使えるようにするための設定
* hiki-update-files-2018 内の table_form_rd.rb を以下の場所に置いた.
# cp hiki-update-files-2018/table_form_rd.rb /usr/local/hiki/misc/plugin/
* session.rb と 00default.rb のバックアップをとった(念のため).
$ cd /usr/local/hiki
$ sudo mkdir backup
$ cd backup
$ sudo cp ../lib/hiki/session.rb .
$ sudo cp ../lib/hiki/plugin/00default.rb .
* hiki-update-files-2018 内の session.rb と 00default.rb を以下の場所に置いた.
/usr/local/hiki/lib/hiki/session.rb
/usr/local/hiki/lib/hiki/plugin/00default.rb
* rdtool と rttool のインストール
# apt-get install rdtool rttool
* hiki-update-files-2018 内の formatter.rb を以下の場所に置いた.
* デフォルトのものではなく, hiki-update-files-2018 の formatter.rb を用いた.
* デフォルトのもの, /usr/local/hiki/lib/hiki/style/rd+/formatter.rb はバックアップをとっておいた.
* hiki-update-files-2018 の formatter.rb を確認した.
* 48 行目
s = "<div class=\"cot\"><ul>\n"
* 58 行目
s << %Q!<li><a href="##{hash['index'].gsub(/^%/, '').gsub(/%/, '-')}" class="cot">#{h(hash['title'])}</a>\n!
* 60 行目
s << ("</ul>\n" * lv)
* 61 行目
s << ("</div>\n")
* 場所は以下の通り.
/usr/local/hiki/lib/hiki/style/rd+/formatter.rb
* hiki-update-files-2018 内の rd2html.rb を以下の場所に置いた.
* デフォルトのものではなく, hiki-update-files-2018 の rd2html.rb を用いた.
* デフォルトのもの, /usr/local/hiki/lib/hiki/style/rd+/rd2html.rb はバックアップをとっておいた.
* hiki-update-files-2018 の rd2html.rb の, require 'style/rd+/anchorlist' が require 'hiki/style/rd+/anchorlist' となっていることを確認した.
* 場所は以下の通り.
/usr/local/hiki/lib/hiki/style/rd+/rd2html.rb
* /usr/local/hiki/hiki-update-files-2018/hikisetup を確認
* 38 行目
Dir.glob(File.join(HIKIDIR, "lib/hiki/messages/*.rb")).map{ |s| s.scan(%r!([^/]+)\.rb$!).first }
* 52 行目
@plugin_path = '/usr/local/hiki/lib/hiki/plugin' if ! @plugin_path
* 108 行目
# !/usr/bin/ruby -I{HIKIDIR}/lib
であるべきところが
# !/usr/bin/ruby -I#{HIKIDIR}/lib
であったがそのままにしておいた.
* 135 行目
cp "/usr/local/hiki/dot.htaccess", ".htaccess"
* ファイルをおいた.
$ sudo cp /usr/local/hiki/hiki-update-files-2018/hikisetup /usr/local/bin/
= 確認作業
自分のユーザアカウント (chikuwa4) で hiki ページを作成し, Hiki のトップページにアクセスできるか確認した(参考: ((<[TEBIKI]Hikiのページ毎の基本設定>))).
* chikuwa4 のホームディレクトリに public_html ディレクトリを作成し, ブラウザからアクセスできるかどうかを確認した.
$ mkdir public_html
* Hiki 用のディレクトリを作成した.
$ cd ~chikuwa4
$ mkdir hiki
$ chmod 2775 hiki
== hikisetup による初期設定
* hikisetup コマンドを用いて, 必要なファイルを /home/chikuwa4/hiki 以下にインストールした. データパスはデフォルトのものを選んだ.
* hiki ディレクトリに移動し, hikisetup を実行した.
$ cd /home/chikuwa4/hiki
* hikisetup のパーミッションを変更した.
$ hikisetup --lang ja
INFO: hiki basedir is /home/chikuwa4/hiki
Please input data_path [/home/chikuwa4/hiki/data]:
* 以下のコマンドで作成されたファイル群を表示させた.
$ tree -a
== ディレクトリ構成の変更とパーミッション設定
大まかには次の三点を行った.
* ディレクトリ構成を以下のようにした.
/home/chikuwa4/hiki/cgi/ cgi 本体や設定ファイル, テーマを格納
data/ hiki のデータ (展開される場所)
cvsroot/ hiki のデータのリポジトリ
* パーミッション, 所有者, 所有グループを以下のようにした.
/home/chikuwa4/hiki/ rwxrwsr-x chikuwa4 chikuwa4
cgi/ rwxrwsr-x chikuwa4 chikuwa4
data/ rwxrwsr-x www-data www-data
cvsroot/ rwxrwsr-x www-data www-data
* 公開に際して, /home/chikuwa4/public_html/hiki から /home/chikuwa4/hiki/cgi にシンボリックリンクをはった.
具体的な作業例を以下に述べる. ただし, cvsroot に関しては別途 cvs コマンド
から作成するため, 下記の ((<#cvsroot の作成|URL:#cvsroot の作成>)) を参照.
== hikisetup で作成されたファイルの移動
$ cd /home/chikuwa4/hiki
$ mkdir cgi
$ mv .htaccess hiki.cgi hikiconf.rb theme cgi/
$ chmod -R g+w cgi
$ chmod 2775 `find cgi/ -type d`
== data ディレクトリのパーミッション設定
* www-data に書き込み/読み込み権限を渡した.
$ sudo chown -R www-data:www-data data
$ sudo chmod -R g+w data
$ sudo chmod 2775 `find data/ -type d`
== public_html 以下からのシンボリックリンクの作成
$ cd /home/chikuwa4/public_html
$ ln -s ../hiki/cgi hiki
== CVS 管理の準備
=== CVS のインストール
Hiki のデータを CVS で管理した.
そのために, CVS をシステムにインストールする. Debian の場合には cvs パッケージをインストールすればよい.
# apt-get install cvs
#リポジトリの場所を問われた場合は作成しないと答える (後で別途作成するため).
=== cvsroot の作成
CVS データを管理するための CVS レポジトリの作成を行った.
$ sudo cvs -d /home/chikuwa4/hiki/cvsroot init
作成後, cvsroot ディレクトリに関しても権限を www-data に渡した.
$ cd /home/chikuwa4/hiki
$ sudo chown -R www-data:www-data cvsroot
$ sudo chmod 2775 `find cvsroot/ -type d`
cvsroot の中にあるファイルに関してはグループ書き込み権限は不要である.
(ディレクトリに対しては, 上記のようにグループ書き込み権限が必要である).
== ファイルへのアクセス制御の設定
/usr/local/apache2/conf/httpd.conf に以下を加えた.
<Directory "/home/chikuwa4/public_html/hiki">
AllowOverride ALL
Options -MultiViews
</Directory>
== CGI の基本動作のチェック
Apache を再起動 (((<[Memo2020][ITPASS]Apache のインストールと設定>)) を参照)して
# systemctl restart apache2
https://133.30.109.21/~chikuwa4/hiki
へアクセスし, Hiki のトップページが見えるかどうか確認した.
#エラー500が出た.
# lv /var/log/httpd-ssl-error.log
#でエラーメッセージを確認したところ, 末尾に
# [Wed Nov 07 14:31:28.096908 2018] [core:alert] [pid 1306:tid
# 140695030814464] [client 150.84.188.41:57563] #/home/chikuwa7/public_html/hiki/.htaccess:
# Options not allowed here
#と記述されていたため, /usr/local/apache2/conf/extra/httpd-userdir.conf 内の
# <Directory "/home/*/public_html">
# AllowOverride FileInfo AuthConfig Limit Indexes
# Options MultiViews Indexes FollowSymLinks IncludesNoExec
#の箇所の二行目 Indexes の後に Options を付け加えた.
#再度 Hiki のトップページにアクセスして正常に見えることを確認する.
この初回アクセス時に /home/chikuwa7/hiki/data/
以下に, cache, info.db, text 等のファイルが自動的に
作成されたので. これらに関するパーミッションも再度設定した.
$ cd /home/chikuwa4/hiki
$ sudo chown -R www-data:www-data data
$ sudo chmod -R g+w data
$ sudo chmod 2775 `find data/ -type d`
== RD 形式で記述するための作業
* /home/chikuwa4/hiki/cgi/hikiconf.rb の末尾に以下を追加した. これにより, header_depth では = を <h2> にするように設定できる.
# RD 形式で記述するための設定
# header_depth では '=' を <h2> にするよう設定
@style = 'rd+'
@options['rd.header_depth'] = 2
* hiki/lib/hiki/style/rd+/formatter.rb をバックアップのものと diff を取ると以下のようになった.
#diff -u formatter.rb formatter.rb.bk
--- formatter.rb 2020-10-26 10:41:38.798647770 +0900 +++ formatter.rb.bk 2020-10-26 10:39:36.742408152 +0900
@@ -16,8 +16,7 @@
module Hiki
module Formatter
- #class RD < Base
- class RDPLUS < Base
+ class RD < Base
Formatter.register(:rd, self)
include Hiki::Util
@@ -45,7 +44,7 @@
end
def toc
- s = "<div class=\"cot\"><ul>\n"
+ s = "<ul>\n"
lv = 1
@visitor.toc.each do |hash|
if hash["level"] > lv
@@ -55,10 +54,9 @@
s << ("</ul>\n" * (lv - hash["level"]))
lv = hash["level"]
end
- s << %Q!<li><a href="##{hash['index'].gsub(/^%/, '').gsub(/%/, '-')}" class="cot">#{h(hash['title'])}</a>\n!
+ s << %Q!<li><a href="##{hash['index']}">#{h(hash['title'])}</a>\n!
end
s << ("</ul>\n" * lv)
- s << ("</div>\n")
end
end
end
* hiki/lib/hiki/style/rd+/parser.rb を以下のように書き換えた.
* parser.rb の書き換え
module Hiki
module Parser
class RD
となっているのを,
module Hiki
module Parser
# class RD
class RDPLUS
とする.
* 確認のためアクセスした.
https://133.30.109.21/~chikuwa4/hiki
この時, 「Error! Please edit this page again.」 のようなメッセージが表示されたので, ((<[TEBIKI]Hikiのページ毎の基本設定>))を参考にして, data 領域以下を #hikisetup による初期設定 の状態に戻す. (具体的には ~/hiki/data/ 以下の cache, info.bd, session を削除した. )
再度アクセスすると, ページが正常に表示された.
* 書き込みテスト
Hiki のページにおいてページを新規作成し, 正しく書き込みができていることを確認した.
= Hiki のインストールと設定
* ~itpass/ftp/server/2018/hiki-update-files-2018 (2014 年度に村上(真)さんが用意してくださったファイルに変更を加えたもの)に 2018 年度のサーバ再構築作業で使ったファイルがあるので, それを使用する.
#* git log を確認したところ, 2016 年 1 月に Hiki が更新され, ディレクトリの構造が変わっている.
# * 具体的には, /usr/local/hiki の下に昨年度までにはなかった lib/hiki ディレクトリがあり, いくつかのファイルやディレクトリが /usr/local/hiki から #/usr/local/hiki/lib/hiki に移動したようである
== Hiki のインストール
* ファイルの取得
* hiki をインストールした.
# # apt-get install libmariadbclient-dev を追記する.
# apt-get install bundler ruby-dev libmysqld-dev
だとうまくいかなかったので
# apt-get install bundler ruby-dev libmariadbd-dev
とした.
# apt-get install libmariadbclient-dev
# apt-get autoremove (不要なパッケージを削除)
# rehash (bash では不要)
# cd /usr/local/
# git clone https://github.com/hiki/hiki.git
# cd hiki
# bundle install
# ln -s hikiconf.rb.sample hikiconf.rb.sample.ja
# * 途中以下のメッセージがでるが先に進む.
# Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing #your bundle as root will break this application for all non-root users on this #machine.
* ika-itpass の ~itpass/ftp/server/2018/hiki-update-files-2018 をディレクトリごと/usr/local/hiki/ に置いた.
== hiki の環境設定
* Table を使えるようにするための設定
* hiki-update-files-2018 内の table_form_rd.rb を以下の場所に置いた.
# cp hiki-update-files-2018/table_form_rd.rb /usr/local/hiki/misc/plugin/
* session.rb と 00default.rb のバックアップをとった(念のため).
$ cd /usr/local/hiki
$ sudo mkdir backup
$ cd backup
$ sudo cp ../lib/hiki/session.rb .
$ sudo cp ../lib/hiki/plugin/00default.rb .
* hiki-update-files-2018 内の session.rb と 00default.rb を以下の場所に置いた.
/usr/local/hiki/lib/hiki/session.rb
/usr/local/hiki/lib/hiki/plugin/00default.rb
* rdtool と rttool のインストール
# apt-get install rdtool rttool
* hiki-update-files-2018 内の formatter.rb を以下の場所に置いた.
* デフォルトのものではなく, hiki-update-files-2018 の formatter.rb を用いた.
* デフォルトのもの, /usr/local/hiki/lib/hiki/style/rd+/formatter.rb はバックアップをとっておいた.
* hiki-update-files-2018 の formatter.rb を確認した.
* 48 行目
s = "<div class=\"cot\"><ul>\n"
* 58 行目
s << %Q!<li><a href="##{hash['index'].gsub(/^%/, '').gsub(/%/, '-')}" class="cot">#{h(hash['title'])}</a>\n!
* 60 行目
s << ("</ul>\n" * lv)
* 61 行目
s << ("</div>\n")
* 場所は以下の通り.
/usr/local/hiki/lib/hiki/style/rd+/formatter.rb
* hiki-update-files-2018 内の rd2html.rb を以下の場所に置いた.
* デフォルトのものではなく, hiki-update-files-2018 の rd2html.rb を用いた.
* デフォルトのもの, /usr/local/hiki/lib/hiki/style/rd+/rd2html.rb はバックアップをとっておいた.
* hiki-update-files-2018 の rd2html.rb の, require 'style/rd+/anchorlist' が require 'hiki/style/rd+/anchorlist' となっていることを確認した.
* 場所は以下の通り.
/usr/local/hiki/lib/hiki/style/rd+/rd2html.rb
* /usr/local/hiki/hiki-update-files-2018/hikisetup を確認
* 38 行目
Dir.glob(File.join(HIKIDIR, "lib/hiki/messages/*.rb")).map{ |s| s.scan(%r!([^/]+)\.rb$!).first }
* 52 行目
@plugin_path = '/usr/local/hiki/lib/hiki/plugin' if ! @plugin_path
* 108 行目
# !/usr/bin/ruby -I{HIKIDIR}/lib
であるべきところが
# !/usr/bin/ruby -I#{HIKIDIR}/lib
であったがそのままにしておいた.
* 135 行目
cp "/usr/local/hiki/dot.htaccess", ".htaccess"
* ファイルをおいた.
$ sudo cp /usr/local/hiki/hiki-update-files-2018/hikisetup /usr/local/bin/
= 確認作業
自分のユーザアカウント (chikuwa4) で hiki ページを作成し, Hiki のトップページにアクセスできるか確認した(参考: ((<[TEBIKI]Hikiのページ毎の基本設定>))).
* chikuwa4 のホームディレクトリに public_html ディレクトリを作成し, ブラウザからアクセスできるかどうかを確認した.
$ mkdir public_html
* Hiki 用のディレクトリを作成した.
$ cd ~chikuwa4
$ mkdir hiki
$ chmod 2775 hiki
== hikisetup による初期設定
* hikisetup コマンドを用いて, 必要なファイルを /home/chikuwa4/hiki 以下にインストールした. データパスはデフォルトのものを選んだ.
* hiki ディレクトリに移動し, hikisetup を実行した.
$ cd /home/chikuwa4/hiki
* hikisetup のパーミッションを変更した.
$ hikisetup --lang ja
INFO: hiki basedir is /home/chikuwa4/hiki
Please input data_path [/home/chikuwa4/hiki/data]:
* 以下のコマンドで作成されたファイル群を表示させた.
$ tree -a
== ディレクトリ構成の変更とパーミッション設定
大まかには次の三点を行った.
* ディレクトリ構成を以下のようにした.
/home/chikuwa4/hiki/cgi/ cgi 本体や設定ファイル, テーマを格納
data/ hiki のデータ (展開される場所)
cvsroot/ hiki のデータのリポジトリ
* パーミッション, 所有者, 所有グループを以下のようにした.
/home/chikuwa4/hiki/ rwxrwsr-x chikuwa4 chikuwa4
cgi/ rwxrwsr-x chikuwa4 chikuwa4
data/ rwxrwsr-x www-data www-data
cvsroot/ rwxrwsr-x www-data www-data
* 公開に際して, /home/chikuwa4/public_html/hiki から /home/chikuwa4/hiki/cgi にシンボリックリンクをはった.
具体的な作業例を以下に述べる. ただし, cvsroot に関しては別途 cvs コマンド
から作成するため, 下記の ((<#cvsroot の作成|URL:#cvsroot の作成>)) を参照.
== hikisetup で作成されたファイルの移動
$ cd /home/chikuwa4/hiki
$ mkdir cgi
$ mv .htaccess hiki.cgi hikiconf.rb theme cgi/
$ chmod -R g+w cgi
$ chmod 2775 `find cgi/ -type d`
== data ディレクトリのパーミッション設定
* www-data に書き込み/読み込み権限を渡した.
$ sudo chown -R www-data:www-data data
$ sudo chmod -R g+w data
$ sudo chmod 2775 `find data/ -type d`
== public_html 以下からのシンボリックリンクの作成
$ cd /home/chikuwa4/public_html
$ ln -s ../hiki/cgi hiki
== CVS 管理の準備
=== CVS のインストール
Hiki のデータを CVS で管理した.
そのために, CVS をシステムにインストールする. Debian の場合には cvs パッケージをインストールすればよい.
# apt-get install cvs
#リポジトリの場所を問われた場合は作成しないと答える (後で別途作成するため).
=== cvsroot の作成
CVS データを管理するための CVS レポジトリの作成を行った.
$ sudo cvs -d /home/chikuwa4/hiki/cvsroot init
作成後, cvsroot ディレクトリに関しても権限を www-data に渡した.
$ cd /home/chikuwa4/hiki
$ sudo chown -R www-data:www-data cvsroot
$ sudo chmod 2775 `find cvsroot/ -type d`
cvsroot の中にあるファイルに関してはグループ書き込み権限は不要である.
(ディレクトリに対しては, 上記のようにグループ書き込み権限が必要である).
== ファイルへのアクセス制御の設定
/usr/local/apache2/conf/httpd.conf に以下を加えた.
<Directory "/home/chikuwa4/public_html/hiki">
AllowOverride ALL
Options -MultiViews
</Directory>
== CGI の基本動作のチェック
Apache を再起動 (((<[Memo2020][ITPASS]Apache のインストールと設定>)) を参照)して
# systemctl restart apache2
https://133.30.109.21/~chikuwa4/hiki
へアクセスし, Hiki のトップページが見えるかどうか確認した.
#エラー500が出た.
# lv /var/log/httpd-ssl-error.log
#でエラーメッセージを確認したところ, 末尾に
# [Wed Nov 07 14:31:28.096908 2018] [core:alert] [pid 1306:tid
# 140695030814464] [client 150.84.188.41:57563] #/home/chikuwa7/public_html/hiki/.htaccess:
# Options not allowed here
#と記述されていたため, /usr/local/apache2/conf/extra/httpd-userdir.conf 内の
# <Directory "/home/*/public_html">
# AllowOverride FileInfo AuthConfig Limit Indexes
# Options MultiViews Indexes FollowSymLinks IncludesNoExec
#の箇所の二行目 Indexes の後に Options を付け加えた.
#再度 Hiki のトップページにアクセスして正常に見えることを確認する.
以下に, cache, info.db, text 等のファイルが自動的に
作成されたので. これらに関するパーミッションも再度設定した.
$ cd /home/chikuwa4/hiki
$ sudo chown -R www-data:www-data data
$ sudo chmod -R g+w data
$ sudo chmod 2775 `find data/ -type d`
== RD 形式で記述するための作業
* /home/chikuwa4/hiki/cgi/hikiconf.rb の末尾に以下を追加した. これにより, header_depth では = を <h2> にするように設定できる.
# RD 形式で記述するための設定
# header_depth では '=' を <h2> にするよう設定
@style = 'rd+'
@options['rd.header_depth'] = 2
* hiki/lib/hiki/style/rd+/formatter.rb をバックアップのものと diff を取ると以下のようになった.
#diff -u formatter.rb formatter.rb.bk
--- formatter.rb 2020-10-26 10:41:38.798647770 +0900 +++ formatter.rb.bk 2020-10-26 10:39:36.742408152 +0900
@@ -16,8 +16,7 @@
module Hiki
module Formatter
- #class RD < Base
- class RDPLUS < Base
+ class RD < Base
Formatter.register(:rd, self)
include Hiki::Util
@@ -45,7 +44,7 @@
end
def toc
- s = "<div class=\"cot\"><ul>\n"
+ s = "<ul>\n"
lv = 1
@visitor.toc.each do |hash|
if hash["level"] > lv
@@ -55,10 +54,9 @@
s << ("</ul>\n" * (lv - hash["level"]))
lv = hash["level"]
end
- s << %Q!<li><a href="##{hash['index'].gsub(/^%/, '').gsub(/%/, '-')}" class="cot">#{h(hash['title'])}</a>\n!
+ s << %Q!<li><a href="##{hash['index']}">#{h(hash['title'])}</a>\n!
end
s << ("</ul>\n" * lv)
- s << ("</div>\n")
end
end
end
* hiki/lib/hiki/style/rd+/parser.rb を以下のように書き換えた.
* parser.rb の書き換え
module Hiki
module Parser
class RD
となっているのを,
module Hiki
module Parser
# class RD
class RDPLUS
とする.
* 確認のためアクセスした.
https://133.30.109.21/~chikuwa4/hiki
この時, 「Error! Please edit this page again.」 のようなメッセージが表示されたので, ((<[TEBIKI]Hikiのページ毎の基本設定>))を参考にして, data 領域以下を #hikisetup による初期設定 の状態に戻す. (具体的には ~/hiki/data/ 以下の cache, info.bd, session を削除した. )
再度アクセスすると, ページが正常に表示された.
* 書き込みテスト
Hiki のページにおいてページを新規作成し, 正しく書き込みができていることを確認した.