FreeBSD7.1RにDokuWikiをインストールする手順。
| OS | FreeBSD 7.1R |
|---|---|
| HTTPD | Apache 2.2.9 ( mod_rewrite インストール済み ) |
| PHP | Version 5.2.6 ( GD Library & ZLIB support インストール済み ) |
wget ( /usr/ports/ftp/wget )
| サイトのURLの例 | http://www.vdobv.com/ |
|---|---|
| このサイトを管理するユーザ名 | webmaster |
| このユーザのカレントディレクトリ | ~/ |
| ブラウザで http://www.vdobv.com/ にアクセスした時に表示するサーバ上のディレクトリ | ~/public_html |
パソコンで、ダウンロード⇒解凍⇒FAT転送⇒パーミッション変更⇒設定をするのはとても面倒なので、サーバコンソール、もしくは、パソコンから TeraTerm を利用して行うと楽。
本家サイト ( http://www.dokuwiki.org/ ) にアクセスして、右上の言語選択 ( Translations of this page ? ) から ja を選択する。 すると日本語で記述されたドキュメントが開く。 このページにおおよそのことが記載されている。 ここでは、とりあえず動かすための方法を記録する。
今回は、dokuwiki-2008-05-05.tgz を使う。
ファイルをダウンロードする場所は、ユーザ ( ここでは webmaster ) のカレントディレクトリとする。 実際の設置先は、~/public_html とする。
wget が使えないときはインストールする。
# su - webmaster Password: %cd ~/ %wget -c http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2008-05-05.tgz %tar zxvfp dokuwiki-2008-05-05.tgz %cp -R dokuwiki-2008-05-05/ ~/public_html ↑dokuwiki-2008-05-05/ の末尾の / を忘れずに。
ブラウザで、http://www.vdobv.com/ にアクセスしてみると、
などと表示されるが、そのまま run the installer というリンクをクリックする。が、なんか怒られた。
画面右上の Choose your language で ja を選択して [Update] を押すと、日本語表記になるので分かりやすいかもしれない。
なお、私の場合は、表示されるエラーの内容がすべて、次のようなものだった。
■英語メッセージ
/usr{DOCUMENT_ROOT}/public_html/conf/ is not writable by DokuWiki.
You need to fix the permission settings of this directory!
■日本語メッセージ
/usr{DOCUMENT_ROOT}/public_html/conf/ に書き込みできません。
このディレクトリの権限を確認して下さい。
1つ1つクリアしていくことにする。
%cd ~/public_html %chmod 777 conf %chmod 777 data %chmod 777 data/pages %chmod 777 data/attic %chmod 777 data/media %chmod 777 data/meta %chmod 777 data/cache %chmod 777 data/locks %chmod 777 data/index %chmod 777 data/tmp
[再試行] をクリックしてエラーがなくなると、DokuWiki Installer というページが表示される。
| Wiki名 | サイトのタイトル |
|---|---|
| ACLを使用する(推奨) | ACL ( Access Control List ) はユーザのアクセス管理をするかどうか。 |
| スーパーユーザー | 全権限をもつ管理者の名前。半角がよい【重要】 |
| フルネーム | ふるね~む。 |
| メールアドレス | 自分のメールアドレス |
| パスワード | スーパーユーザ用のパスワード【重要】 |
| 確認 | もっかい同じパスワード【重要】 |
| ACL初期設定 | パブリックWiki ( 閲覧は全ての人が可能、書き込み・アップロードは登録ユーザーのみ ) でも選でおく。 |
んで、[保存] ボタンをクリック。
「install.php を削除してください」という文章があるので 今すぐ 消すべし。
%cd ~/public_html %rm install.php
ここで、ブラウザで、http://www.vdobv.com/ にアクセスしてみる。
トップページ ( start ) が表示された。OKだ。
英語のページが表示されちゃったって場合は、後で設定できる。
そうそう、ダウンロードしたファイルは、もう不要だからサクッと削除しておこう。
%cd ~/ %rm -fr dokuwiki-2008-05-05 %rm dokuwiki-2008-05-05.tgz
まずは、全権限を持つ管理者で [Login] する。
英語版の DokuWiki が表示されても、あわてないこと。
[Admin] ボタンを押して、Configuration Settings をクリック。
Language を、ja に変更して、ページ最下部の [Save] ボタンを押すと、おお、きたきた。
とりあえず全ページ変更不可にする という項目で、DokuWiki の全ページを管理者以外が編集できないようにした。
ところが、Pukiwiki などにおける SandBag は、DokuWiki の場合、PlayGround のようで、Wiki構文の「練習の場」だ。
ここでは PlayGround のアクセス権をユーザに開放してみる。
「管理」⇒「アクセスコントロール管理」の順に押し、次に様にする。
アクセス権限を変更したいファイル(またはフォルダ)を選択して、「権限を追加」のランで「@user」を選ぶ。
「新規エントリ」で、「作成」または「アップロード」あたりをチェックし[保存]を押す。
これで、PlayGround: 配下がユーザに開放されたはずだ。
図では、PlayGround:* を設定したが、PlayGround:PlayGround の1ページのみを開放したい場合は、画面左上で該当のファイルを選択してから権限設定すればよい。
ここで、実際に「PlayGround:PlayGround」を編集しようと思うと、次の様にしかられる場合がある。
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。 もし変更したい場合は管理者に連絡してください。
通常は、DokuWiki のみでアクセス権を設定することができる。
ところが、インストール時にサイト管理のユーザ名 ( 例では webmaster ) でファイルをコピーした為に、はじめから存在する playground ( ディレクトリ ) のファイル所有者は、ユーザ名 ( 例では webmaster ) になっている。これは、www ( HTTPD のユーザ名 ) からしたら有効でない。
こんな場合は、ファイルの所有者を www にするか、あるいは、パーミッションを変更する。下記のどちらか一方でよい。
%cd ~/public_html/data/pages/ %chown -R www playground
あるいは、
%cd ~/public_html/data/pages/ %chmod -R 666 playground
DokuWiki の場合のトップページは、start となっている。これを変更する場合は、
あらかじめ新しいスタートページを作成しておいてから、
[管理] ⇒「サイト設定」の順に押し、「基本」 ⇒「スタートページ名」を変更する。 [保存] ボタンを押すことを忘れずに。
その他、設定管理の画面で変更しておくとよいもの(いずれも使い方次第だが)。
「基本」⇒「ベースURL」にトップページのアドレス(末尾のスラッシュは付けない)を入力。(例では http://www.vdovb.com)
「表示」⇒「現在位置を表示」をON。
「表示」⇒「最初の見出しをページ名とする」をON。
「認証」⇒「新規ユーザー登録を通知するメールアドレス」に自分のメアド。
「リンク」⇒「外部リンクの表示先」を「_blank」。
たとえば、http://www.vdobv.com/doku.php?id=wikis:dokuwiki ( このページ ) のアドレスが、
http://www.vdobv.com/wikis/dokuwiki となったら、いろんな意味
でとっても嬉しいかもしれない。
ただし、この機能は、Apache と共に mod_rewrite がインストールされていることが必要。
設定管理の画面で、「高度な設定」⇒「URLの書き換え」を「.htaccess」とする。
さらに、 .htaccess.dist を .htaccess にコピーして編集する( vi が嫌いな人は、慣れたものを使えばよい。ee など。)。
%cd ~/public_html %cp .htaccess.dist .htaccess %vi .htaccess
書き換える部分は、次に示す行番号の # をとる。
空行も含めてカウントした、5行目、16行目、26行目、27行目、29行目~36行目。
下記のソースは見本で、便宜上、行番号を付ける。
0001:## Enable this to restrict editing to logged in users only
0002:
0003:## You should disable Indexes and MultiViews either here or in the
0004:## global config. Symlinks maybe needed for URL rewriting.
0005:Options -Indexes -MultiViews +FollowSymLinks
0006:
0007:## make sure nobody gets the htaccess files
0008:<Files ~ "^[\._]ht">
0009: Order allow,deny
0010: Deny from all
0011: Satisfy All
0012:</Files>
0013:
0014:## Uncomment these rules if you want to have nice URLs using
0015:## $conf['userewrite'] = 1 - not needed for rewrite mode 2
0016:RewriteEngine on
0017:#
0018:## Not all installations will require the following line. If you do,
0019:## change "/dokuwiki" to the path to your dokuwiki directory relative
0020:## to your document root.
0021:#RewriteBase /dokuwiki
0022:#
0023:## If you enable DokuWikis XML-RPC interface, you should consider to
0024:## restrict access to it over HTTPS only! Uncomment the following two
0025:## rules if your server setup allows HTTPS.
0026:RewriteCond %{HTTPS} !=on
0027:RewriteRule ^lib/exe/xmlrpc.php$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
0028:#
0029:RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]
0030:RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L]
0031:RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L]
0032:RewriteRule ^$ doku.php [L]
0033:RewriteCond %{REQUEST_FILENAME} !-f
0034:RewriteCond %{REQUEST_FILENAME} !-d
0035:RewriteRule (.*) doku.php?id=$1 [QSA,L]
0036:RewriteRule ^index.php$ doku.php
DokuWiki は Google, Yahoo, Microsoft などのサーチエンジンに向けた XLS 形式の sitemap を自動生成することができる。
「高度な設定」⇒「アーカイブの圧縮方法」を「gzip」にする。
「高度な設定」⇒「Googleサイトマップ作成頻度(日数)」に適当な数字を入れる。
さらに、次のようにして、空の sitemap.xml.gz ファイルを用意しておく。
%cd ~/public_html %touch sitemap.xml.gz %chmod 666 sitemap.xml.gz
試しに sitemap を作ってみたい場合は、次のアドレスをブラウザで表示する。
http://yourserver/lib/exe/indexer.php?debug=1
ファイルが作られない場合は、ZLIB support を入れること。
なお、圧縮形式ではなく、テキストXML形式のsitemapを作りたい場合は、「アーカイブの圧縮方法」を「圧縮しない」に変更する。もちろん、sitemap.xml の作成とパーミッションを書き込み可能にしておくことを忘れずに。
使い方次第で設定をするとよい。
「高度な設定」⇒「URLの名前空間の区切りにスラッシュを使用」をON。
「高度な設定」⇒「canonical URL(正準)を使用」をON。
背景色、文字色を変更したい場合は、~/public_html/lib/tpl/default/style.ini を編集する。
見出し(H1~H5)に下線を付けたり変更したい場合は、~/public_html/lib/tpl/default/design.css を編集する。
文書の編集画面で、「Formatting Syntax」をクリックすると、英文のWiki構文の説明が表示される。これを、本家サイトにある日本語版に差し替えたいと思う。
しかし、実際に「Formatiign Syntax」を編集しようと思うと次の様に、しかられる。
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。 もし変更したい場合は管理者に連絡してください。
これは、次の様にすることで編集が可能となる。
%cd ~/public_html/data/pages/wiki %chmod 666 syntax.txt
DokuWiki 上でページを差し替えたら、パーミッションを戻しておく。
%cd ~/public_html/data/pages/wiki %chmod 644 syntax.txt
Fatal error: Call to undefined function: preg_match()
PHPをバージョンアップした後に、PCRE関連のインストールを忘れたことがあった。
今となっては、どれが原因だったのかわからないので、関連しそうなものを列挙しておく。
/usr/posts/devel/pcre/ /usr/posts/devel/php5-pcre/
これらがバージョンアップされていたら make reinstall した後、アパッチを再起動してみる。
DokuWiki の日本語マニュアルが公式サイトにある。何か困ったことがあったら閲覧するとよい。