目次
~~SLIDESHOW~~
dokuwiki
dokuwiki は PHP で実装された wiki エンジン。 国際化されている。SQL バックエンドを必要としない。ページアクセス制御機能がある(自分だけ執筆するサイトを簡単に作れる)。 技術ドキュメントのためのコード色分け機能を持つ。変更のサマリーを記録できる。
- はてなブックマークのdokuwiki情報 更新停止
紹介記事
ソースのクロスリファレンス
便利な機能
- 編集画面の「イメージやファイルの追加」
- うっかり編集中にページ遷移してしまったときの「ドラフトを編集」
セットアップ
- 最新安定版は 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">
サーチエンジン対策
- サイト設定の[スパム対策]-[インデックスを許可(何秒後)]の数値を0に
タイムゾーン
サーバが国外なので conf/local.protected.php に下記を書いた。
<?php date_default_timezone_set("Asia/Tokyo"); ?>
テンプレート
arctic
- arcticテンプレートを使用開始した。コピー先は lib/tpl/ サイト管理のメニューでテンプレートの選択。
- /lib/tpl/arctic/style.ini をいじった。
dokutouch
- いつか使ってみたい。かっこいいテンプレート http://www.wikidesign.ch/en/dokutouch
カスタマイズ
試したい機能
テンプレート: _template.txt をFTPクライアントで適切な名前空間に置くと、自動的に、その名前空間内に作成されているすべてのページにテンプレートが適用される。
dokuwiki の問題
- HTML-lint のスコアが低い
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|ファイルのキャプション}}