~~SLIDESHOW~~

dokuwiki

dokuwikiPHP で実装された wiki エンジン。 国際化されている。SQL バックエンドを必要としない。ページアクセス制御機能がある(自分だけ執筆するサイトを簡単に作れる)。 技術ドキュメントのためのコード色分け機能を持つ。変更のサマリーを記録できる。

紹介記事

ソースのクロスリファレンス

便利な機能

  • 編集画面の「イメージやファイルの追加」
  • うっかり編集中にページ遷移してしまったときの「ドラフトを編集」

セットアップ

  • 最新安定版は Release 2015-08-10a "Detritus"
  • PHP 5.3.3 が必要。
  • セキュリティについて理解する(要するに .htaccess で data などのディレクトリをアクセス禁止するか、data を public_html の外に置くか、どちらかが必要)http://www.dokuwiki.org/security
  • サーバにアップロードして install.php を実行
  • インストールが終わったら install.php は削除しておく

バージョンアップ

  • ただ上書きするだけでよい(本当?)
  • 試してみたら大丈夫でした。お見事!
  • ひさしぶりにバージョンアップしたらエラーで画面真っ白。
    • 原因はテンプレートを自分でいじったので互換性が壊れたためか。。Vagrant でテスト環境を作って試行錯誤して、うまくいったら公開サーバーにコピーという方法で解決。

ja.nishimotz.com 設定の記録

  • dokuwiki-2009-02-14b.tgz (現在は 2015-08-10a)
  • URLの書き換え(Use nice URLs) : ".htaccess"
    • .htaccess.dist を .htaccess にリネーム
    • RewriteBase を / に設定
    • RewriteBase 以下の # で無効化された行を有効化する
  • アクセスコントロール管理
    • ページ/名前空間 "*" に対して @ALL=読み取り @user=アップロード
  • ユーザ管理
    • ユーザ=nishimotz : グループ=admin,user
  • 無効にする:ユーザ登録
  • 作成した内容のライセンス:未設定
  • 最終更新者の情報:アカウント名でなくフルネーム
  • Use first heading for pagenames : Navi only
  • canonical URL(正準URL)を使用 : true

言語設定

言語設定を ja から en に戻したが en だとコンテンツの lang 属性が en になるので、 やはり ja で運用している。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="**" lang="**" dir="ltr"> 

サーチエンジン対策

タイムゾーン

サーバが国外なので conf/local.protected.php に下記を書いた。

<?php date_default_timezone_set("Asia/Tokyo"); ?> 

テンプレート

arctic

  • arcticテンプレートを使用開始した。コピー先は lib/tpl/ サイト管理のメニューでテンプレートの選択。
  • /lib/tpl/arctic/style.ini をいじった。

dokutouch

カスタマイズ

試したい機能

テンプレート: _template.txt をFTPクライアントで適切な名前空間に置くと、自動的に、その名前空間内に作成されているすべてのページにテンプレートが適用される。

dokuwiki の問題

dokuwiki のサーバレスポンス

"Expires: Thu, 19 Nov 1981 08:52:00 GMT" なのは no-cache の効果のため?

$ wget --debug --verbose http://ja.nishimotz.com/
Setting --verbose (verbose) to 1
DEBUG output created by Wget 1.10.2 on cygwin.

--11:16:10--  http://ja.nishimotz.com/
           => `index.html'
Resolving ja.nishimotz.com... 205.178.145.65
Caching ja.nishimotz.com => 205.178.145.65
Connecting to ja.nishimotz.com|205.178.145.65|:80... connected.
Created socket 3.
Releasing 0x006e0d00 (new refcount 1).

---request begin---
GET / HTTP/1.0
User-Agent: Wget/1.10.2
Accept: */*
Host: ja.nishimotz.com
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Date: Sun, 06 Sep 2009 02:16:10 GMT
Server: Apache/2.2.8 (Unix) FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.6
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: DokuWiki=c4d1a177ccf130e8852d2f28dfd2398d; path=/; HttpOnly
Set-Cookie: DW6666cd76f96956469e7be39d750cc7d9=deleted; expires=Sat, 06-Sep-2008
 02:16:09 GMT; path=/; httponly
Connection: close
Content-Type: text/html; charset=utf-8

---response end---
200 OK

Stored cookie ja.nishimotz.com -1 (ANY) / <session> <insecure> [expiry none] Dok
uWiki c4d1a177ccf130e8852d2f28dfd2398d
Length: unspecified [text/html]

    [ <=>                                 ] 12,816        75.07K/s

Closed fd 3
11:16:11 (74.64 KB/s) - `index.html' saved [12816]

日本語ページ名

日本語ページ名は UTF8 に変換されてファイル名として保存される模様。

「テスト」→ dokuwiki/data/pages/%E3%83%86%E3%82%B9%E3%83%88.txt

Spider Your DokuWiki Using Wget

admin状態の判定

since 2011-04-29

下記のようにテンプレートの main.php をいじると、ログインしてないときだけ表示されるようなコンテンツを作れる。

<?php global $INFO; if (! $INFO['isadmin']): ?>
# .....
<?php endif ?>

s5 / s5reloaded

since 2011-11-17

http://www.dokuwiki.org/plugin:s5 実験的にこのページで運用。

http://www.dokuwiki.org/plugin:s5reloaded 画面が崩れたので削除。

画像の埋め込み

幅320ピクセルで表示したいとき:

{{:filename.png?320|ファイルのキャプション}}
dokuwiki.txt · 最終更新: 2015/09/28 09:46 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0