読者です 読者をやめる 読者になる 読者になる

トップページのカスタマイズとIIS特有の設定事項

PukiWiki IIS

PukiWikiの簡易セットアップ方法(2) :: Wiki :: Pocketstudio'z logが参考になります。上司にPukiWikiのカスタマイズについて聞かれたのでぐぐってこのエントリを推薦しておきました。

インストール・カスタマイズ時に、Windows特有(と言うかIIS特有)の注意点があったので、帰ってからそれについて書きます。

#結論を先に書くとIUSR_MYPCNAMEがらみのファイルシステム上のPermissionでの罠。
#NTFS使っててもFATと変わらない使い方してる人が多いし
#このあたりの話はUnix系のOSをいぢった経験がないとぴんとこないのかも。

インストール直後(IISでは"C:\Inetpub\wwwrootにpukiwiki-1.4.7_notb_utf8を展開し、pukiwiki.ini.phpにパスワードを設定したのみ)で凍結解除をしようとすると、下記のように怒られます。(下記はSandBoxを凍結しようとした場合)

fopen() failed: wiki/53616E64426F78.txt
Maybe permission is not writable or filename is too long

エントリ書くためにエラーメッセージを引用して脊髄反射的に気づいたのですが、エラーメッセージでぐぐれば済む話なんですよね。→http://www.kuroduction.com/blog/mt/archives/000476.htmlの解決方法の前者は賛成できません。

せっかくsandboxなアカウントのIWAM_MYPCNAMEApacheUnixで動かしているの時の"www"ユーザとか)でIISを動かしているのに、pukiwiki配下のみAdministrator権限(Unix環境に例えればroot)でIISを動かすことになるからです。万が一、Pukiwikiに致命的な脆弱性がありPukiwikiPHPスクリプトがクラックされた場合に、Webサーバにあるローカルファイル(例えば「顧客名簿.xls」とか「2008Q3決算予想修正.pdf」とかw)が外部に流出することになりかねないからです。

言うまでもなく推奨できる解決方法は公式Wikiの後者の方法(sandboxのユーザで目的のファイルをアクセスできるようにする)でしょう。
#でも、公式Wikiが言おうとしてるのは新たなsandboxのユーザを追加することのような気がする。

http://www.kuroduction.com/blog/mt/archives/000476.htmlに詳しく書いてあるがパーミッションの問題。Unixで言えば下記のコマンドを実行すれば良い。

% chown -R www pukiwiki

同じようにエクスプローラでNTFSのアクセス制御リスト(ACL)を変更しようとしたのだけどやり方がわからない。会社のWindowsXP SP2のマシンでは出来るんだけど。orz
自宅もWindowsXP SP2なのになんでだ?? 仕方ないので、Cygwin

$ cd /cygdrive/c/Inetpub/wwwroot; chown -R IUSR_MYPCNAME pukiwiki

ってやりました。orz

…正しい(?)やり方がわかりました。【Windows XP】NTFSでフォーマットしましたが、エクスプローラのフォルダで「セキュリティ」タブが表示されません。 | TIPS , FAQによれば、簡易ファイル共有を解除すれば良いらしい。