[Memo2021][ITPASS]Hiki のインストールと設定
Hiki のインストールと設定
- ~itpass/ftp/server/2020/hiki-update-files-2020 (2014 年度に村上(真)さんが用意してくださったファイルに変更を加えたもの)に 2020 年度のサーバ再構築作業で使ったファイルがあるので, それを使用する.
Hiki のインストール
ファイルの取得
- hiki をインストールする.
# apt install bundler ruby-dev libmariadbd-dev
とする.
# apt install libmariadb-dev-compat # apt autoremove (不要なパッケージを削除) # rehash (bash では不要) # cd /usr/local/ # apt install git # git clone https://github.com/hiki/hiki.git # cd hiki # bundle update --bundler # bundle install # ln -s hikiconf.rb.sample hikiconf.rb.sample.ja
- ika-itpass の ~itpass/ftp/server/2020/hiki-update-files-2020 をディレクトリごと/usr/local/hiki/ に置く.
hiki の環境設定
Table を使えるようにするための設定
- hiki-update-files-2020 内の table_form_rd.rb を以下の場所に置く.
# cp hiki-update-files-2020/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-2020 内の session.rb と 00default.rb を以下の場所に置く.
/usr/local/hiki/lib/hiki/session.rb /usr/local/hiki/lib/hiki/plugin/00default.rb
- rdtool と rttool のインストール
# apt install rdtool rttool
hiki-update-files-2020 内の formatter.rb を以下の場所に置く.
- デフォルトのものではなく, hiki-update-files-2020 の formatter.rb を用いる.
- デフォルトのもの, /usr/local/hiki/lib/hiki/style/rd+/formatter.rb はバックアップをとっておく.
hiki-update-files-2020 の 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-2020 内の rd2html.rb を以下の場所に置く.
- デフォルトのものではなく, hiki-update-files-2020 の rd2html.rb を用いる.
- デフォルトのもの, /usr/local/hiki/lib/hiki/style/rd+/rd2html.rb はバックアップをとっておく.
- hiki-update-files-2020 の 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-2020/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-2020/hikisetup /usr/local/bin/
- hikisetup のパーミッションを変更する.
# chmod 775 /usr/local/bin/hikisetup
確認作業
自分のユーザアカウント (chikuwa2) で hiki ページを作成し, Hiki のトップページにアクセスできるか確認する(参考: [TEBIKI]Hikiのページ毎の基本設定).
- chikuwa2 のホームディレクトリに public_html ディレクトリを作成し, ブラウザからアクセスできるかどうかを確認する.
$ mkdir public_html
- Hiki 用のディレクトリを作成する.
$ cd ~chikuwa2 $ mkdir hiki $ chmod 2775 hiki
hikisetup による初期設定
- hikisetup コマンドを用いて, 必要なファイルを /home/chikuwa2/hiki 以下にインストールする. データパスはデフォルトのものを選ぶ.
- hiki ディレクトリに移動し, hikisetup を実行する.
$ cd /home/chikuwa2/hiki $ hikisetup --lang ja INFO: hiki basedir is /home/chikuwa2/hiki Please input data_path [/home/chikuwa2/hiki/data]:
- 以下のコマンドで作成されたファイル群を表示させる.
# apt install tree $ tree -a
ディレクトリ構成の変更とパーミッション設定
大まかには次の三点を行う.
ディレクトリ構成を以下のようにする.
/home/chikuwa2/hiki/cgi/ cgi 本体や設定ファイル, テーマを格納 data/ hiki のデータ (展開される場所) cvsroot/ hiki のデータのリポジトリ
パーミッション, 所有者, 所有グループを以下のようにする.
/home/chikuwa2/hiki/ rwxrwsr-x chikuwa2 chikuwa2 cgi/ rwxrwsr-x chikuwa2 chikuwa2 data/ rwxrwsr-x www-data www-data cvsroot/ rwxrwsr-x www-data www-data
- 公開に際して, /home/chikuwa2/public_html/hiki から /home/chikuwa2/hiki/cgi にシンボリックリンクをはる.
具体的な作業例を以下に述べる. ただし, cvsroot に関しては別途 cvs コマンド から作成するため, 下記の #cvsroot の作成 を参照.
hikisetup で作成されたファイルの移動
$ cd /home/chikuwa2/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/chikuwa2/public_html $ ln -s ../hiki/cgi hiki
CVS 管理の準備
CVS のインストール
Hiki のデータを CVS で管理する. そのために, CVS をシステムにインストールする. Debian の場合には cvs パッケージをインストールすればよい.
# apt install cvs
cvsroot の作成
CVS データを管理するための CVS レポジトリの作成を行う.
$ sudo cvs -d /home/chikuwa4/hiki/cvsroot init
作成後, cvsroot ディレクトリに関しても権限を www-data に渡す.
$ cd /home/chikuwa2/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/chikuwa2/public_html/hiki"> AllowOverride ALL Options -MultiViews </Directory>
CGI の基本動作のチェック
Apache を再起動 ([Memo2020][ITPASS]Apache のインストールと設定 を参照)して
# systemctl restart apache2 https://133.30.109.21/~chikuwa2/hiki
へアクセスし, Hiki のトップページが見えるかどうか確認する.
この初回アクセス時に /home/chikuwa2/hiki/data/ 以下に, cache, info.db, text 等のファイルが自動的に 作成される場合は. これらに関するパーミッションも再度設定する.
$ cd /home/chikuwa2/hiki $ sudo chown -R www-data:www-data data $ sudo chmod -R g+w data $ sudo chmod 2775 `find data/ -type d`
RD 形式で記述するための作業
- /home/chikuwa2/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 を取ると以下のようになる.
chikuwa2@tako-itpass:/usr/local/hiki$ sudo diff -u ./lib/hiki/style/rd+/formatter.rb ./backup/formatter.rb --- ./lib/hiki/style/rd+/formatter.rb 2021-10-21 14:14:18.777849401 +0900 +++ ./backup/formatter.rb 2021-10-21 14:11:11.526007219 +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/~chikuwa2/hiki
この時, 「Error! Please edit this page again.」 のようなメッセージが表示される場合は, [TEBIKI]Hikiのページ毎の基本設定を参考にして, data 領域以下を #hikisetup による初期設定 の状態に戻す. (具体的には ~/hiki/data/ 以下の cache, info.db, session を削除する. )
- 書き込みテスト
Hiki のページにおいてページを新規作成し, 正しく書き込みができていることを確認する.
Keyword(s):
References:[[ITPASS2021]2021年度サーバ構築ログ]