NEW BYAKKO WIKI

PukiWiki Adv.PHPで書かれています。PHP5.4以降がインストールされている環境なら基本的にどのOS上でも動作します。Windowsユーザは、nginxと一体になったPukiWiki Adv. for Winginxがあります。

設置方法

以下は一例です。Webサーバーへのシェルアクセスが可能であれば、アーカイブをFTPやSCPなどでそのままサーバーに転送し、サーバー上で解凍するだけでも動くはずです。

tar -Jxvf pukiwiki_adv-v2.0.0.tar.xz

一応このアーカイブを作った時点での最新の外部ライブラリが入っていますが、可能ならば以下のコマンドを実行してください。

php ./composer.phar update

なお、Gitから最新版をダウンロードする場合は以下のコマンドを入力します。

git clone https://github.com/logue/pukiwiki_adv
  1. アーカイブを解きます。
  2. 必要に応じて設定ファイル(*.ini.php)の内容を確認します。
  3. 共通設定
    設定設定ファイル
    サイト別設定wiki-data/pukiwiki.ini.php
    サーバー設定wiki-common/server.ini.php
    ユーザ定義wiki-common/rules.ini.php
    UA設定wiki-common/profile.ini.php
    モバイルUI設定wiki-common/mobile.ini.php
    一般UI設定wiki-common/default.ini.php
    管理設定wiki-common/auth.ini.php
  4. アーカイブの内容をサーバに転送します。
    ファイルの転送モードについては次項を参照してください。
    ディレクトリパーミッション
    attach777
    backup777
    cache777
    counter777
    diff777
    image755
    lib755
    plugin755
    skin755
    trackback777
    wiki777
    ファイルパーミッション転送モード
    *.php644ASCII
    *.lng644ASCII
    cache/*666ASCII
    image/*644BINARY
    lib/*644ASCII
    plugin/*644ASCII
    skin/*644ASCII
    wiki/*666ASCII
  5. サーバ上のファイルおよびディレクトリのパーミッションを確認します。wiki-commonや、wiki-dataは外部から見えない場所に置いてください。(http://.../でアクセスできないいちにおくこと。)
    .
    |--wiki-data - Wikiのデータ-ディレクトリ
    |  |--attach - 添付ファイル格納ディレクトリ
    |  |--backup - バックアップファイル格納ディレクトリ
    |  |--cache - キャッシュディレクトリ
    |  |  |-amazon - amazonのキャッシュデーター
    |  |  `-captcha- 画像認証キャッシュファイル
    |  |--counter - カウンター
    |  |--diff - 差分ディレクトリ
    |  |--htmlinsert - htmlinsert.inc.phpの埋め込みたいHTMLの格納ディレクトリ
    |  |--init - プラグインオーバーライド設定ディレクトリ
    |  |--log - ログディレクトリ
    |  |  |-browse - 閲覧ログ
    |  |  |-check - 確認ログ(mixirss.inc.phpとかをRSSリーダーで読んだとか)
    |  |  |-download - 添付ファイルのダウンロードログ
    |  |  `-update - 更新ログ
    |  |--trackback - リファラー解析/PingBack
    |  |--wiki - Wikiのデーターディレクトリ
    |  `--pukiwiki.ini.php - Wiki設定ファイル
    |--wiki-common
    |  |--extend - 拡張プラグイン/設定格納ディレクトリ
    |  |--lib - PukiWiki Adv.ライブラリディレクトリ
    |  |  |--fonts - Captcha用フォント
    |  |  |--openid - OpenIDライブラリ
    |  |  |--PukiWiki - エンジン
    |  |  |  |--Auth/ -- 認証処理
    |  |  |  |--Config/ -- :config管理
    |  |  |  |--File/ -- ファイル入出力
    |  |  |  |--Lang/ -- 言語設定
    |  |  |  |--Renderer/ -- PukiWikiパーサ
    |  |  |  |--Service/ -- XmlRpcサービス
    |  |  |  |--Spam/ -- アンチスパム
    |  |  |  |--Text/ -- テキスト処理系
    |  |  |  |--UA/ -- ユーザーエージェント判定
    |  |  |  |--Attach.php - 添付ファイル管理クラス
    |  |  |  |--Backup.php - バックアップ管理クラス
    |  |  |  |--Factory.php - 管理クラスのファクトリークラス
    |  |  |  |--Listing.php - 一覧クラス
    |  |  |  |--Mailer.php - メール送信クラス
    |  |  |  |--NetBios.php - NetBios
    |  |  |  |--Recent.php - 更新履歴クラス
    |  |  |  |--Referer.php - リンク元管理クラス
    |  |  |  |--Relational.php - 関連リンク管理クラス
    |  |  |  |--Render.php - ページ出力クラス
    |  |  |  |--Router.php - アドレス生成クラス
    |  |  |  |--Search.php - 検索処理クラス
    |  |  |  |--SearchLucene.php - Luceneによる検索処理クラス 未使用
    |  |  |  |--Singleton.php - シングルトンクラス 未使用
    |  |  |  |--Time.php - 時刻クラス
    |  |  |  |--TimeZone.php - 時差クラス
    |  |  |  |--Utility.php - 汎用処理クラス
    |  |  |  `--Wiki.php - Wikiファイル管理クラス
    |  |  |--DSA.php - DSA暗号化ライブラリ
    |  |  |--init.php - 初期設定ライブラリ
    |  |  |--legacy.php - 後方互換用ライブラリ
    |  |  `--resource.php - コア用メッセージ格納ライブラリ
    |  |-- locale - ロケールファイル格納ディレクトリ
    |  |-- en_US
    |  |  `-- LC_MESSAGES
    |  |-- ja_JP
    |  |  `-- LC_MESSAGES
    |  |-- ko_KR
    |  |  `-- LC_MESSAGES
    |  |-- pot
    |  |-- zh_CN
    |  |  `-- LC_MESSAGES
    |  |-- zh_TW
    |  |  `-- LC_MESSAGES
    |  |--plugin - 基本プラグイン格納ディレクトリ
    |  |--auth.ini.php - 認証定義
    |  |--auth_api.ini.php - 外部認証API定義
    |  |--auth_users.ini.php - 認証ユーザ定義
    |  |--auth_workgroup.ini.php - ユーザグループ定義
    |  |--confg-log.ini.php - ロギング設定
    |  |--default.ini.php - エンジン基本設定
    |  |--domain.ini.php - ドメイン定義
    |  |--mobile.ini.php - モバイル端末設定(iOS / Android / BlackBerryなど)
    |  |--profile.ini.php - UA振り分け
    |  |--rules.ini.php - 省略表記設定
    |  |--server.ini.php - サーバー設定(メールサーバーや、Mecabなどの位置など)
    |  `--spam.ini.php - スパム判定設定
    |--webroot - Web上でトップになる場所(public_htmlの位置)
    |  |--image - 画像格納ディレクトリ
    |  |--js - JavaScript格納ディレクトリ
    |  |--skin - テーマ関連格納ディレクトリ
    |  |--.htaccess - ApacheおよびCherokeeサーバー設定
    |  |--.htpasswd - パスワードファイル
    |  |--crossdomain.xml - 外部からのAjaxに反応するかの設定
    |  |--favicon.ico - サイトのお気に入りアイコン
    |  |--humans.txt - サイトの説明記述ファイル
    |  |--index.php - 実際ここがサイトのトップ
    |  `--robots.txt - 検索ロボット向け設定記述ファイル
    |--tools - 移行ツールなど
    |--vendor - 外部ライブラリ
    |  `--bad-behavior - アンチスパムライブラリBad Behavior
    |
    `--doc - 全く役に立たない取扱説明書
    
  6. 777 (rwxrwxrwx) のディレクトリが書き込み権限を必要とするディレクトリ群です。
    それらのディレクトリ中にすでに存在するファイルにも書き込み権限が必要なので 666 (rw-rw-rw-) と設定します。それら以外は読み込みができれば充分なのでディレクトリは 755 (rwxr-xr-x)、ファイルは 644 (rw-r--r--) とします。
    今後、ディレクトリなどが追加された場合で、これらドキュメントの更新が追随できていない場合は、同様の考え方で設定をしてください。
  7. po ファイル
    locale/ja_JP/LC_MESSAGES/ などにある *.po ファイルは、メッセージを翻訳する際にのみ必要であり、稼働時には不要です。メッセージのカスタマイズを行わない場合には、消してかまいません。
  8. webroot上のindex.phpからアクセスします。

xrea / coreserver / x-beatのファイル設置例

/home
   |--/[ユーザ名]/
       |--public_html/ <--ここに、webrootディレクトリ内のファイルを入れる。
       |--wiki-common/ - wikiのライブラリ
       |--wiki-data/ - Wikiのデーター
       `--vendor/ - 外部ライブラリ

独自ドメインを持っていてサブドメイン毎にWikiを設置する場合

サブドメイン毎に以下のようにディレクトリを設置することを推奨します。

/home
   |--/[ユーザ名]/
       |--wiki-common/
       |--wiki-data/
       |    |--contents1 - contents1.foo.barのwikiデーター
       |    `--contents2 - contents2.foo.barのwikiデーター
       `--public_html/   - www.foo.barのトップディレクトリ
            |--contents1 - contents1.foo.barのトップディレクトリ
            |--contents2 - contents2.foo.barのトップディレクトリ
            |--js/
            `--image/

サーバー設定

Apache2.x、PHP5.4以降の環境であれば動きます。必要なモジュールは、JSON、mbstring、OpenSSL、curl、GDです。

ただ、高負荷が予想されるサイトの場合は、nginx1.x+php5.5のFPM動作で動かすことを強く推奨します。

設置方法

以下は一例です。Webサーバーへのシェルアクセスが可能であれば、アーカイブをFTPやSCPなどでそのままサーバーに転送し、サーバー上で解凍するだけでも動くはずです。

tar -Jxvf pukiwiki_adv-v2.0.0.tar.xz

一応このアーカイブを作った時点での最新の外部ライブラリが入っていますが、可能ならば以下のコマンドを実行してください。

php ./composer.phar update

なお、Gitから最新版をダウンロードする場合は以下のコマンドを入力します。

git clone https://github.com/logue/pukiwiki_adv
  1. アーカイブを解きます。
  2. 必要に応じて設定ファイル(*.ini.php)の内容を確認します。
  3. 共通設定
    設定設定ファイル
    サイト別設定wiki-data/pukiwiki.ini.php
    サーバー設定wiki-common/server.ini.php
    ユーザ定義wiki-common/rules.ini.php
    UA設定wiki-common/profile.ini.php
    モバイルUI設定wiki-common/mobile.ini.php
    一般UI設定wiki-common/default.ini.php
    管理設定wiki-common/auth.ini.php
  4. アーカイブの内容をサーバに転送します。
    ファイルの転送モードについては次項を参照してください。
    ディレクトリパーミッション
    attach777
    backup777
    cache777
    counter777
    diff777
    image755
    lib755
    plugin755
    skin755
    trackback777
    wiki777
    ファイルパーミッション転送モード
    *.php644ASCII
    *.lng644ASCII
    cache/*666ASCII
    image/*644BINARY
    lib/*644ASCII
    plugin/*644ASCII
    skin/*644ASCII
    wiki/*666ASCII
  5. サーバ上のファイルおよびディレクトリのパーミッションを確認します。wiki-commonや、wiki-dataは外部から見えない場所に置いてください。(http://.../でアクセスできないいちにおくこと。)
    .
    |--wiki-data - Wikiのデータ-ディレクトリ
    |  |--attach - 添付ファイル格納ディレクトリ
    |  |--backup - バックアップファイル格納ディレクトリ
    |  |--cache - キャッシュディレクトリ
    |  |  |-amazon - amazonのキャッシュデーター
    |  |  `-captcha- 画像認証キャッシュファイル
    |  |--counter - カウンター
    |  |--diff - 差分ディレクトリ
    |  |--htmlinsert - htmlinsert.inc.phpの埋め込みたいHTMLの格納ディレクトリ
    |  |--init - プラグインオーバーライド設定ディレクトリ
    |  |--log - ログディレクトリ
    |  |  |-browse - 閲覧ログ
    |  |  |-check - 確認ログ(mixirss.inc.phpとかをRSSリーダーで読んだとか)
    |  |  |-download - 添付ファイルのダウンロードログ
    |  |  `-update - 更新ログ
    |  |--trackback - リファラー解析/PingBack
    |  |--wiki - Wikiのデーターディレクトリ
    |  `--pukiwiki.ini.php - Wiki設定ファイル
    |--wiki-common
    |  |--extend - 拡張プラグイン/設定格納ディレクトリ
    |  |--lib - PukiWiki Adv.ライブラリディレクトリ
    |  |  |--fonts - Captcha用フォント
    |  |  |--openid - OpenIDライブラリ
    |  |  |--PukiWiki - エンジン
    |  |  |  |--Auth/ -- 認証処理
    |  |  |  |--Config/ -- :config管理
    |  |  |  |--File/ -- ファイル入出力
    |  |  |  |--Lang/ -- 言語設定
    |  |  |  |--Renderer/ -- PukiWikiパーサ
    |  |  |  |--Service/ -- XmlRpcサービス
    |  |  |  |--Spam/ -- アンチスパム
    |  |  |  |--Text/ -- テキスト処理系
    |  |  |  |--UA/ -- ユーザーエージェント判定
    |  |  |  |--Attach.php - 添付ファイル管理クラス
    |  |  |  |--Backup.php - バックアップ管理クラス
    |  |  |  |--Factory.php - 管理クラスのファクトリークラス
    |  |  |  |--Listing.php - 一覧クラス
    |  |  |  |--Mailer.php - メール送信クラス
    |  |  |  |--NetBios.php - NetBios
    |  |  |  |--Recent.php - 更新履歴クラス
    |  |  |  |--Referer.php - リンク元管理クラス
    |  |  |  |--Relational.php - 関連リンク管理クラス
    |  |  |  |--Render.php - ページ出力クラス
    |  |  |  |--Router.php - アドレス生成クラス
    |  |  |  |--Search.php - 検索処理クラス
    |  |  |  |--SearchLucene.php - Luceneによる検索処理クラス 未使用
    |  |  |  |--Singleton.php - シングルトンクラス 未使用
    |  |  |  |--Time.php - 時刻クラス
    |  |  |  |--TimeZone.php - 時差クラス
    |  |  |  |--Utility.php - 汎用処理クラス
    |  |  |  `--Wiki.php - Wikiファイル管理クラス
    |  |  |--DSA.php - DSA暗号化ライブラリ
    |  |  |--init.php - 初期設定ライブラリ
    |  |  |--legacy.php - 後方互換用ライブラリ
    |  |  `--resource.php - コア用メッセージ格納ライブラリ
    |  |-- locale - ロケールファイル格納ディレクトリ
    |  |-- en_US
    |  |  `-- LC_MESSAGES
    |  |-- ja_JP
    |  |  `-- LC_MESSAGES
    |  |-- ko_KR
    |  |  `-- LC_MESSAGES
    |  |-- pot
    |  |-- zh_CN
    |  |  `-- LC_MESSAGES
    |  |-- zh_TW
    |  |  `-- LC_MESSAGES
    |  |--plugin - 基本プラグイン格納ディレクトリ
    |  |--auth.ini.php - 認証定義
    |  |--auth_api.ini.php - 外部認証API定義
    |  |--auth_users.ini.php - 認証ユーザ定義
    |  |--auth_workgroup.ini.php - ユーザグループ定義
    |  |--confg-log.ini.php - ロギング設定
    |  |--default.ini.php - エンジン基本設定
    |  |--domain.ini.php - ドメイン定義
    |  |--mobile.ini.php - モバイル端末設定(iOS / Android / BlackBerryなど)
    |  |--profile.ini.php - UA振り分け
    |  |--rules.ini.php - 省略表記設定
    |  |--server.ini.php - サーバー設定(メールサーバーや、Mecabなどの位置など)
    |  `--spam.ini.php - スパム判定設定
    |--webroot - Web上でトップになる場所(public_htmlの位置)
    |  |--image - 画像格納ディレクトリ
    |  |--js - JavaScript格納ディレクトリ
    |  |--skin - テーマ関連格納ディレクトリ
    |  |--.htaccess - ApacheおよびCherokeeサーバー設定
    |  |--.htpasswd - パスワードファイル
    |  |--crossdomain.xml - 外部からのAjaxに反応するかの設定
    |  |--favicon.ico - サイトのお気に入りアイコン
    |  |--humans.txt - サイトの説明記述ファイル
    |  |--index.php - 実際ここがサイトのトップ
    |  `--robots.txt - 検索ロボット向け設定記述ファイル
    |--tools - 移行ツールなど
    |--vendor - 外部ライブラリ
    |  `--bad-behavior - アンチスパムライブラリBad Behavior
    |
    `--doc - 全く役に立たない取扱説明書
    
  6. 777 (rwxrwxrwx) のディレクトリが書き込み権限を必要とするディレクトリ群です。
    それらのディレクトリ中にすでに存在するファイルにも書き込み権限が必要なので 666 (rw-rw-rw-) と設定します。それら以外は読み込みができれば充分なのでディレクトリは 755 (rwxr-xr-x)、ファイルは 644 (rw-r--r--) とします。
    今後、ディレクトリなどが追加された場合で、これらドキュメントの更新が追随できていない場合は、同様の考え方で設定をしてください。
  7. po ファイル
    locale/ja_JP/LC_MESSAGES/ などにある *.po ファイルは、メッセージを翻訳する際にのみ必要であり、稼働時には不要です。メッセージのカスタマイズを行わない場合には、消してかまいません。
  8. webroot上のindex.phpからアクセスします。

xrea / coreserver / x-beatのファイル設置例

/home
   |--/[ユーザ名]/
       |--public_html/ <--ここに、webrootディレクトリ内のファイルを入れる。
       |--wiki-common/ - wikiのライブラリ
       |--wiki-data/ - Wikiのデーター
       `--vendor/ - 外部ライブラリ

独自ドメインを持っていてサブドメイン毎にWikiを設置する場合

サブドメイン毎に以下のようにディレクトリを設置することを推奨します。

/home
   |--/[ユーザ名]/
       |--wiki-common/
       |--wiki-data/
       |    |--contents1 - contents1.foo.barのwikiデーター
       |    `--contents2 - contents2.foo.barのwikiデーター
       `--public_html/   - www.foo.barのトップディレクトリ
            |--contents1 - contents1.foo.barのトップディレクトリ
            |--contents2 - contents2.foo.barのトップディレクトリ
            |--js/
            `--image/

サーバー設定

Apache2.x、PHP5.4以降の環境であれば動きます。必要なモジュールは、JSON、mbstring、OpenSSL、curl、GDです。

ただ、高負荷が予想されるサイトの場合は、nginx1.x+php5.5のFPM動作で動かすことを強く推奨します。