Pukiwiki 1.4.7のインストール#
現在は Pukiwiki 1.5.0 が公開されています
サーバー選択#
- rtwikiはCORESERVERを使っています。
- すごくお勧めという訳ではないですが、アクセス状況に応じてプラン変更をするのが比較的楽です(CORE-B⇔CORE-C)。しかしCORE-Cを借りるならもっといいサービスを使えるような気がします。
なぜPukiWikiなのか#
- 正直な所惰性で使っているというのが大きいですが、初心者でも扱いやすいのが魅力。
- しかしPukiWikiは単純に古いので、もう最適ではないと思います。(DokuWikiなどの方がよさそう。)
- 古くなってはいるが大量のカスタマイズ情報とプラグインがまだ残っているため、比較的導入の敷居が低い。
- (古いということで)セキュリティ的なリスクもありそうなので、Wikiで取り扱う内容については「ゲーム攻略」程度にとどめた方がよいかと思っています。(居ないと思いますがビジネス利用などは注意)
- atwikiなどのレンタルwikiサービスも非常に気にはなる。ユーザ管理ができるのと、ここでやっているカスタマイズのほとんどが、デフォルトで備わっているため初期の構築が非常に楽なはず。また、負荷にも強いようです。
Pukiwikiの導入#
- ダウンロード
- パズドラW攻略WikiはEUC-JP版ですが、理由がなければUTF-8版がおすすめです。
- EUC-JP版だと、TwitterやFacebookなどのソーシャルボタンを置くとURLが文字化けする可能性がある。
- EUC-JP版だと、Google検索結果のURLが文字化けして正しく飛べないことがあった(2014年2~3月頃)
- UTF-8版はURLの長さやファイルサイズが大きくなる点はデメリットだが、テキストデータなので画像ファイルに比べると大きな問題ではない。
- 配布されているプラグインに日本語が含まれている場合、EUC-JP版であることが多いので注意。
- PukiWiki/Install/インストール方法
- パーミッション変更は添付の chall.rb を使うと楽かも。
#!/usr/local/bin/ruby -Ku
require 'fileutils'
DirNames = %w(attach backup cache counter diff wiki)
DirNames.each do |dir|
File.chmod( 0777, dir )
puts dir
Dir.glob(dir + '/*').each do |path|
begin
File.chmod( 0666, path )
rescue Errno::EPERM
end
#puts path
end
end
puts "ended."
アップロード後、コンソールで下記を入力。
ruby chall.rb
- 不要なページの削除
- 削除しても大丈夫なもの
- BracketName
- InterWiki
- InterWikiSandBox
- PHP
- PukiWiki
- PukiWiki/1.4
- PukiWiki/1.4/Manual
- PukiWiki/1.4/Manual/Plugin
- PukiWiki/1.4/Manual/Plugin/A-D
- PukiWiki/1.4/Manual/Plugin/E-G
- PukiWiki/1.4/Manual/Plugin/H-K
- PukiWiki/1.4/Manual/Plugin/L-N
- PukiWiki/1.4/Manual/Plugin/O-R
- PukiWiki/1.4/Manual/Plugin/S-U
- PukiWiki/1.4/Manual/Plugin/V-Z
- WikiEngines
- WikiName
- WikiWikiWeb
- YukiWiki
- 削除しないほうがいいもの
- 下記以外にも一覧に表示されないページが複数存在するので、FTP経由で消してしまう時は注意。
- FrontPage
- MenuBar
- RecentDeleted
- InterWikiName 削除できない
- FormattingRules 編集時の「テキスト整形のルール」に使われている(はず)
- Help テンプレートからのリンクを消してしまえば不要
- SandBox は 砂場 などにリネームするとSPAMボットの攻撃対象になりにくいです。
カウンターの修正#
- それとは別にPHP5.1以降でyesterdayが0と表示される問題があるので修正する。
- BugTrack2/141 , TOBY SOFT wiki
- $is_yesterday = ($counters[$page]['date'] == get_date('Y/m/d', strtotime('yesterday', UTIME)));
+ $is_yesterday = ($counters[$page]['date'] == get_date('Y/m/d', UTIME - 86400));