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

* 書き込みテストをした