IT pass HikiWiki - [Memo2017][ITPASS]Hiki のインストールと設定 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
#= Hiki のインストールと設定
#* ~itpass/ftp/server/2016/hiki-update-files-2016 (2014 年度に村上(真)さんが用意してくださったファイルに変更を加えたもの)に 2016 年度のサーバ再構築作業で使ったファイルがある.
#* git log を確認したところ, 2016 年 1 月に Hiki が更新され, ディレクトリの構造が変わっている.
# * 具体的には, /usr/local/hiki の下に昨年度までにはなかった lib/hiki ディレクトリがあり, いくつかのファイルやディレクトリが /usr/local/hiki から /usr/local/hiki/lib/hiki に移動したようである
== Hiki のインストール
* ファイルの取得
* hiki をインストールした.
# apt-get install bundler ruby-dev libmysqld-dev
# apt-get autoremove # (不要なパッケージを削除)
# # rehash (bash では不要)
# cd /usr/local/
# git clone https://github.com/hiki/hiki.git
# cd hiki
# bundle install
* 'E: Package 'libmysqlclient-dev' has no installation candidate' というエラーが出た.
* 以下のコマンドでパッケージをインストールすることによって 'libmysqlclient-dev' を入手した
# apt-get install libmariadbclient-dev
# 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/2016/hiki-update-files-2016 をディレクトリごと/usr/local/hiki/ に置いた.
== hiki の環境設定
* Table を使えるようにするための設定
* hiki-update-files-2016 内の table_form_rd.rb を以下の場所に置いた.
# cp 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-2016 内の 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
* formatter.rb について
# * デフォルトのものを用いる.
# * 場所は以下の通り.
/usr/local/hiki/lib/hiki/style/rd+/formatter.rb
* hiki-update-files-2016 内の rd2html.rb を以下の場所に置いた.
# * デフォルトのものではなく, hiki-update-files-2016 の rd2html.rb を用いる.
# * デフォルトのもの, /usr/local/hiki/lib/hiki/style/rd+/rd2html.rb はバックアップをとっておく.
* hiki-update-files-2016 の 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-2016/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
* 135 行目
cp "/usr/local/hiki/dot.htaccess", ".htaccess"
* ファイルを置き換えた.
$ sudo cp /usr/local/hiki/hiki-update-files-2016/hikisetup /usr/local/bin/
= 確認作業
chikuwa3 ユーザで hiki ページを作成し, Hiki のトップページにアクセスできるか確認した
#(参考: ((<[TEBIKI]Hikiのページ毎の基本設定>))).
* chikuwa3 のホームディレクトリに public_html ディレクトリを作成し, ブラウザからアクセスできるかどうかを確認した.
* Hiki 用のディレクトリを作成した.
$ cd ~chikuwa3
$ mkdir hiki
$ chmod 2775 hiki
* hiki ディレクトリに移動し, hikisetup を実行した.
$ cd /home/chikuwa3/hiki
$ hikisetup --lang ja
INFO: hiki basedir is /home/chikuwa3/hiki
Please input data_path [/home/chikuwa3/hiki/data]:
== hikisetup による初期設定
* hikisetup コマンドを用いて, 必要なファイルを /home/chikuwa3/hiki 以下にインストールした. データパスはデフォルトのものを選んだ.
$ cd /home/chikuwa3/hiki
$ hikisetup --lang ja
INFO: hiki basedir is /home/chikuwa3/hiki
Please input data_path [/home/chikuwa3/hiki/data]:
#* 以下のコマンドで作成されたファイル群を表示できる.
#
# $ tree -a
#== ディレクトリ構成の変更とパーミッション設定
#大まかには次の三点を行った.
#* ディレクトリ構成を以下のようにした.
# /home/chikuwa3/hiki/cgi/ cgi 本体や設定ファイル, テーマを格納
# data/ hiki のデータ (展開される場所)
# cvsroot/ hiki のデータのリポジトリ
#* パーミッション, 所有者, 所有グループを以下のようにした.
# /home/chikuwa3/hiki/ rwxrwsr-x itpass itpass
# cgi/ rwxrwsr-x itpass itpass
# data/ rwxrwsr-x www-data www-data
# cvsroot/ rwxrwsr-x www-data www-data
#* 公開に際して, /home/chikuwa3/public_html/hiki から /home/chikuwa3/hiki/cgi にシンボリックリンクをはった.
#具体的な作業例を以下に述べる. ただし, cvsroot に関しては別途 cvs コマンド
#から作成するため, 下記の ((<#cvsroot の作成|URL:#cvsroot の作成>)) を参照のこと.
== hikisetup で作成されたファイルの移動
$ cd /home/chikuwa3/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/chikuwa3/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/chikuwa3/hiki/cvsroot init
作成後, cvsroot ディレクトリに関しても権限を www-data に渡した.
$ cd /home/chikuwa3/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/chikuwa3/pulic_html/hiki">
# AllowOverride ALL
# Options -MultiViews
# </Directory>
#
#* 既に書かれてあったため省略
== CGI の基本動作のチェック
* Apache を再起動した
# /usr/local/apache2/bin/apachectl -k graceful-stop
# /usr/local/apache2/bin/apachectl -k start
# (((<[ITPASS2011a]apache2のインストールと設定#動作チェック>)) を参照)して
https://133.30.109.21/~chikuwa3/hiki
へアクセスし, Hiki のトップページが見えることを確認した.
#なお, この初回アクセス時に /home/chikuwa3/hiki/data/
以下の, cache, info.db, text 等の自動的に
作成されたファイルのパーミッションも再度設定した.
$ cd /home/chikuwa3/hiki
$ sudo chown -R www-data:www-data data
$ sudo chmod -R g+w data
$ sudo chmod 2775 `find data/ -type d`
== RD 形式で記述するための作業
* /home/chikuwa3/hiki/cgi/hikiconf.rb の末尾に以下を追加した.
#これにより, header_depth では = を <h2> にするように設定できる.
# RD 形式で記述するための設定
# header_depth では '=' を <h2> にするよう設定
@style = 'rd+'
@options['rd.header_depth'] = 2
* 2回目の mkdir hiki 以下の作業時には追加する場所を /usr/local/hiki/hikiconf.rb.sample に変更した
$ cd /usr/local/hiki/
$ cp hikiconf.rb.sample hikiconf.rbbu.sample
* /usr/local/hiki/lib/hiki/style/rd+/formatter.rb と /usr/local/hiki/lib/hiki/style/rd+/parser.rb を以下のように書き換えた
* 事前にバックアップをとる
* formatter.rb の書き換え
module Hiki
module Formatter
class RD < Base
となっているのを,
module Hiki
module Formatter
# class RD < Base
class RDPLUS < Base
とする.
* parser.rb の書き換え
module Hiki
module Parser
class RD
となっているのを,
module Hiki
module Parser
# class RD
class RDPLUS
とする.
* 書き換えた内容を反映させるために Hiki ディレクトリを再度作成した
$ sudo rm -r hiki
* 作業ログの "$ mkdir hiki" 以下を実行
* 確認のためアクセスした.
https://133.30.109.21/~chikuwa3/hikihttps://133.30.109.22/~chikuwa3/hiki
* 書き込みテストをした
#= Hiki のインストールと設定
#* ~itpass/ftp/server/2016/hiki-update-files-2016 (2014 年度に村上(真)さんが用意してくださったファイルに変更を加えたもの)に 2016 年度のサーバ再構築作業で使ったファイルがある.
#* git log を確認したところ, 2016 年 1 月に Hiki が更新され, ディレクトリの構造が変わっている.
# * 具体的には, /usr/local/hiki の下に昨年度までにはなかった lib/hiki ディレクトリがあり, いくつかのファイルやディレクトリが /usr/local/hiki から /usr/local/hiki/lib/hiki に移動したようである
== Hiki のインストール
* ファイルの取得
* hiki をインストールした.
# apt-get install bundler ruby-dev libmysqld-dev
# apt-get autoremove # (不要なパッケージを削除)
# # rehash (bash では不要)
# cd /usr/local/
# git clone https://github.com/hiki/hiki.git
# cd hiki
# bundle install
* 'E: Package 'libmysqlclient-dev' has no installation candidate' というエラーが出た.
* 以下のコマンドでパッケージをインストールすることによって 'libmysqlclient-dev' を入手した
# apt-get install libmariadbclient-dev
# 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/2016/hiki-update-files-2016 をディレクトリごと/usr/local/hiki/ に置いた.
== hiki の環境設定
* Table を使えるようにするための設定
* hiki-update-files-2016 内の table_form_rd.rb を以下の場所に置いた.
# cp 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-2016 内の 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
* formatter.rb について
# * デフォルトのものを用いる.
# * 場所は以下の通り.
/usr/local/hiki/lib/hiki/style/rd+/formatter.rb
* hiki-update-files-2016 内の rd2html.rb を以下の場所に置いた.
# * デフォルトのものではなく, hiki-update-files-2016 の rd2html.rb を用いる.
# * デフォルトのもの, /usr/local/hiki/lib/hiki/style/rd+/rd2html.rb はバックアップをとっておく.
* hiki-update-files-2016 の 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-2016/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
* 135 行目
cp "/usr/local/hiki/dot.htaccess", ".htaccess"
* ファイルを置き換えた.
$ sudo cp /usr/local/hiki/hiki-update-files-2016/hikisetup /usr/local/bin/
= 確認作業
chikuwa3 ユーザで hiki ページを作成し, Hiki のトップページにアクセスできるか確認した
#(参考: ((<[TEBIKI]Hikiのページ毎の基本設定>))).
* chikuwa3 のホームディレクトリに public_html ディレクトリを作成し, ブラウザからアクセスできるかどうかを確認した.
* Hiki 用のディレクトリを作成した.
$ cd ~chikuwa3
$ mkdir hiki
$ chmod 2775 hiki
* hiki ディレクトリに移動し, hikisetup を実行した.
$ cd /home/chikuwa3/hiki
$ hikisetup --lang ja
INFO: hiki basedir is /home/chikuwa3/hiki
Please input data_path [/home/chikuwa3/hiki/data]:
== hikisetup による初期設定
* hikisetup コマンドを用いて, 必要なファイルを /home/chikuwa3/hiki 以下にインストールした. データパスはデフォルトのものを選んだ.
$ cd /home/chikuwa3/hiki
$ hikisetup --lang ja
INFO: hiki basedir is /home/chikuwa3/hiki
Please input data_path [/home/chikuwa3/hiki/data]:
#* 以下のコマンドで作成されたファイル群を表示できる.
#
# $ tree -a
#== ディレクトリ構成の変更とパーミッション設定
#大まかには次の三点を行った.
#* ディレクトリ構成を以下のようにした.
# /home/chikuwa3/hiki/cgi/ cgi 本体や設定ファイル, テーマを格納
# data/ hiki のデータ (展開される場所)
# cvsroot/ hiki のデータのリポジトリ
#* パーミッション, 所有者, 所有グループを以下のようにした.
# /home/chikuwa3/hiki/ rwxrwsr-x itpass itpass
# cgi/ rwxrwsr-x itpass itpass
# data/ rwxrwsr-x www-data www-data
# cvsroot/ rwxrwsr-x www-data www-data
#* 公開に際して, /home/chikuwa3/public_html/hiki から /home/chikuwa3/hiki/cgi にシンボリックリンクをはった.
#具体的な作業例を以下に述べる. ただし, cvsroot に関しては別途 cvs コマンド
#から作成するため, 下記の ((<#cvsroot の作成|URL:#cvsroot の作成>)) を参照のこと.
== hikisetup で作成されたファイルの移動
$ cd /home/chikuwa3/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/chikuwa3/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/chikuwa3/hiki/cvsroot init
作成後, cvsroot ディレクトリに関しても権限を www-data に渡した.
$ cd /home/chikuwa3/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/chikuwa3/pulic_html/hiki">
# AllowOverride ALL
# Options -MultiViews
# </Directory>
#
#* 既に書かれてあったため省略
== CGI の基本動作のチェック
* Apache を再起動した
# /usr/local/apache2/bin/apachectl -k graceful-stop
# /usr/local/apache2/bin/apachectl -k start
# (((<[ITPASS2011a]apache2のインストールと設定#動作チェック>)) を参照)して
https://133.30.109.21/~chikuwa3/hiki
へアクセスし, Hiki のトップページが見えることを確認した.
#なお, この初回アクセス時に /home/chikuwa3/hiki/data/
以下の, cache, info.db, text 等の自動的に
作成されたファイルのパーミッションも再度設定した.
$ cd /home/chikuwa3/hiki
$ sudo chown -R www-data:www-data data
$ sudo chmod -R g+w data
$ sudo chmod 2775 `find data/ -type d`
== RD 形式で記述するための作業
* /home/chikuwa3/hiki/cgi/hikiconf.rb の末尾に以下を追加した.
#これにより, header_depth では = を <h2> にするように設定できる.
# RD 形式で記述するための設定
# header_depth では '=' を <h2> にするよう設定
@style = 'rd+'
@options['rd.header_depth'] = 2
* 2回目の mkdir hiki 以下の作業時には追加する場所を /usr/local/hiki/hikiconf.rb.sample に変更した
$ cd /usr/local/hiki/
$ cp hikiconf.rb.sample hikiconf.rbbu.sample
* /usr/local/hiki/lib/hiki/style/rd+/formatter.rb と /usr/local/hiki/lib/hiki/style/rd+/parser.rb を以下のように書き換えた
* 事前にバックアップをとる
* formatter.rb の書き換え
module Hiki
module Formatter
class RD < Base
となっているのを,
module Hiki
module Formatter
# class RD < Base
class RDPLUS < Base
とする.
* parser.rb の書き換え
module Hiki
module Parser
class RD
となっているのを,
module Hiki
module Parser
# class RD
class RDPLUS
とする.
* 書き換えた内容を反映させるために Hiki ディレクトリを再度作成した
$ sudo rm -r hiki
* 作業ログの "$ mkdir hiki" 以下を実行
* 確認のためアクセスした.
* 書き込みテストをした