#author("2019-01-28T13:09:02+09:00","default:wikiwriter","wikiwriter")
&tag(PukiWiki);
*目次 [#acbcc129]
#contents
#freeze
#nofollow
#norelated
* PukiWiki [#v1621880]

*関連ページ [#j472c9a4]
-[[./設定]]
-[[./バージョンアップ]]
- https://pukiwiki.osdn.jp/
- https://osdn.jp/projects/pukiwiki/

*設定 [#ff27ae05]
PukiWikiは Wiki([[WikiWikiWeb]]) と呼ばれているもののひとつで、基本的に誰でも全てのページを作成・編集することができます。

**スキン [#y022ce53]
-[[自作スキン - PukiWiki-official:https://pukiwiki.osdn.jp/?%E8%87%AA%E4%BD%9C%E3%82%B9%E3%82%AD%E3%83%B3]]からリンクされているが、生きているのが少ない。
-とりあえずclubskinあたりが良いか。
--[[メモ帳 | clubskin0.3をpukiwiki1.5.1に適用する:https://blog.sky-net.pw/article/75]]
また、編集には特別な知識を要することなく、簡単なルールに従うだけで整形されたHTML文書を生成できます。

*プラグイン [#u6760009]
- 漢字をサポートしています。日本語のページ名もOK!
- 全てのデータはテキストファイルに保存されます
- 定期的にバックアップが保存されるので、復旧も簡単
- ページ単位の凍結なども可能です
- URLを短く表現できる[[InterWiki]]をサポート
- [[PHP]]で書かれています
- ライセンスはGPL(( https://www.gnu.org/licenses/gpl.html ))です

**attachref.inc.php [#t8ac7c3f]
-画像アップロード用のリンクと画像埋め込みを実現するプラグイン。
-文字コードのUTF-8への変更、パスワードを要求するように設定して、かつソースの修正が必要。
-[[[PukiWiki] PukiWiki便利なプラグイン – 今西衞研究室:https://www.okomeda.net/wp/381/]]
#pre{{
// 管理者だけが添付ファイルをアップロードできるようにする
define('ATTACHREF_UPLOAD_ADMIN_ONLY',TRUE); // FALSE or TRUE
// アップロード/削除時にパスワードを要求する(ADMIN_ONLYが優先)
define('ATTACHREF_PASSWORD_REQUIRE',TURE); // FALSE or TRUE
** リンク [#nf50e667]

$pass = array_key_exists('pass',$vars) ? $vars['pass'] : NULL;
}}
- [[PukiWiki-official:https://pukiwiki.osdn.jp/]] からPukiWiki 公式サイトへ飛べます
-- ご質問や御意見は、こちらへどうぞ。 :)

- Pukiwiki-dev - https://pukiwiki.osdn.jp/dev/
-- こちらはPukiWiki開発サイトです。PukiWiki開発サイトでは、次期バージョンの開発だけでなく、現行バージョンの1.4系や1.3系の修正、セキュリティfixが行なわれています。[[pukiwiki.dev:開発日記]]で日々の作業の内容が掲載されていますので、PukiWikiを運用されている方は目を通すようお願いします。

***パスワードなしで使用 [#af236fdc]
- https://osdn.jp/projects/pukiwiki/
-- OSDN のプロジェクトサマリです。PukiWikiのダウンロードはこちらからどうぞ。

-全体を編集制限している場合(自分一人しか使用しない場合)、上記の管理者パスワード入力を省略したい。
-その場合attachref.inc.phpとattach.inc.phpの設定を変更する。
-まずattachref.inc.php。
 // 管理者だけが添付ファイルをアップロードできるようにする
 define('ATTACHREF_UPLOAD_ADMIN_ONLY',FALSE); // FALSE or TRUE
-次にattach.inc.php
#pre{{
// 管理者だけが添付ファイルをアップロードできるようにする
//define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', TRUE); // FALSE or TRUE
//define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', TRUE); // FALSE or TRUE
define('PLUGIN_ATTACH_UPLOAD_ADMIN_ONLY', FALSE); // FALSE or TRUE
** 関連ページ [#zf685513]

// 管理者だけが添付ファイルを削除できるようにする
//define('PLUGIN_ATTACH_DELETE_ADMIN_ONLY', TRUE); // FALSE or TRUE
define('PLUGIN_ATTACH_DELETE_ADMIN_ONLY', FALSE); // FALSE or TRUE
}}
-これで添付、削除時の管理者パスワードは省略できる。ただし編集用のパスワードは制限されているので、安全性はかわらない(はず)。
**html.inc.php [#o11583a1]
-[[Sonots' PukiWiki プラグイン:http://pukiwiki.sonots.com/]]からダウンロードできる。
-pukiwiki 1.5.1でも動作。
*Tips [#u4dd1344]
**さくらのレンタルサーバー(cgi版)でBasic認証を使う [#y14ee995]
-[[FastCGI版PHP環境で、PukiWikiのBasic認証(auth)を有効にする | rtwiki管理人日記:http://blog.rtwiki.net/pukiwiki/fastcgi_auth/]]にあるように、.htaccessに一行追加するだけでOK。
 SetEnvIfNoCase Authorization "^(Basic .*)$" HTTP_AUTHORIZATION=$1
**GETで検索できるようにする [#a713528e]
-1.4.7ではデフォルトでGETで検索できない。[[BugTrack/796 - PukiWiki-dev:http://pukiwiki.sourceforge.jp/dev/?BugTrack%2F796]]。GETを有効にする場合手動で元に戻すしかない。
-[[xyzzyからpukiwikiを検索する - eggmanの日記:http://d.hatena.ne.jp/eggman/20071024/1193210228]]を参考にする。
-search.inc.phpを編集。
--PLUGIN_SEARCH_DISABLE_GET_ACCESSを0に変更。GETを無効にしない。
 define('PLUGIN_SEARCH_DISABLE_GET_ACCESS', 0); // 1, 0
--formのmethodをgetに変更し、内部にhiddenタグを追加。
#pre{{
<form action="$script?cmd=search" method="get">
 <div>
  <input type="hidden"  name="cmd" value="search" />
  <input type="text"  name="word" value="$s_word" size="20" />
}}
#ls2
- [[InterWikiName]] -- [[InterWiki]]のサーバリスト

**Alfredから検索できるようにする [#t32d1e59]
-上記方法でGET検索可能にすればAlfredなどから呼び出すことができるようになる。Web SearchのURLに例えば次のように設定する。
 http://www.srcw.net/wiki/index.php?encode_hint=%A4%D7&cmd=search&word={query}

**msearch.inc.phpを動かす [#p19246f2]
-[[自作プラグイン/msearch.inc.php - PukiWiki-official:http://pukiwiki.sourceforge.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%2Fmsearch.inc.php]]に、[[質問箱3/437 - PukiWiki-official:http://pukiwiki.sourceforge.jp/?%E8%B3%AA%E5%95%8F%E7%AE%B13%2F437]]の修正を施し、漢字コードをUTF-8に変換すれば動く。
-InterWikiNameに以下のように記述。
#pre{{
-[./?plugin=msearch&site=this(utf8),http://www.srcw.net/wiki/index.php(utf8)&word= msearch]
}}
-次のように呼び出す。
 #lookup(msearch,マルチ検索) 

*トラブルシューティング [#me5299ef]
**yesterdayのカウンターが0になる。 [#me13cff4]
-[[BugTrack2/141 - PukiWiki-dev:http://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F141]]
-[[Wiki/PukiWiki/counterプラグインでyesterdayが0になる件 - TOBY SOFT wiki:http://tobysoft.net/wiki/index.php?Wiki%2FPukiWiki%2Fcounter%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%A4%C7yesterday%A4%AC0%A4%CB%A4%CA%A4%EB%B7%EF]]

**ref.inc.phpで拡大縮小できない。 [#oa0afbb5]
-たぶんref.inc.phpのバグ。先頭に"./"をつけないとだめ。
 #ref(./test.jpg, 50%)

**日本語ページにファイルが添付できない [#d289c2b0]
-ファイルをアップロードすると「Runtime Error: No such page」エラーが発生。
-attach.inc.phpで"no shch page"を出力している場所で$pageを出力してみると文字化けしていた。
-php.iniのmbstring.http_inputをautoからUTF-8するととりあえず解消。
#pre{{
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
;mbstring.http_input = auto
mbstring.http_input = UTF-8
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
mbstring.func_overload = 1
}}

**PHP 5系に対応しているはずのPukiWiki 1.5.1で大量にNoticeやWarningが表示される [#l93fd232]
-例えば以下のようなメッセージが表示される。
#pre{{
Strict Standards: Declaration of Heading::canContain() should be compatible with Element::canContain($obj)
Deprecated: ini_set(): Use of mbstring.http_input is deprecated in
}}
-原因はerror_reportingの設定の違い。実はさくらインターネットの共有サーバーではerror_reportingの値が"4177"に設定されていて、エラーが抑制されているっぽい。そのまま通常環境にコピーして実行するとエラーが表示される。
-index.phpでerror_reportingを設定すると良い。
#pre{{
error_reporting(E_ERROR | E_PARSE); // Avoid E_WARNING, E_NOTICE, etc
}}

**PHP 5.4以降で「Fatal error: Call-time pass-by-reference has been removed」が発生 [#xd707ddb]
-例えばpopular2.inc.phpは以下のように修正する。
#pre{{
 $ git diff
diff --git a/plugin/popular2.inc.php b/plugin/popular2.inc.php
index 07c9926..344a38d 100644
--- a/plugin/popular2.inc.php
+++ b/plugin/popular2.inc.php
@@ -123,7 +123,7 @@ function plugin_popular2_convert()
                $max = array_shift($args);
                $except = array_shift($args);
                $list = array_shift($args);
-               array_walk($args, 'plugin_popular2_check_arg', &$params);
+               array_walk($args, 'plugin_popular2_check_arg', $params);
        }
        if($list == '') $list = 'total';
        if($except == '') $except = '';
}}


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS