概要
Windows Server IIS で稼働させている WordPress にてバージョンアップをしようとすると FTP接続情報を求められるようになった。OSのバージョンアップをすると同様の現象になった。
原因
バージョンアップのために一時生成されるファイル所有者と,CGIの実行ユーザーが異なるためにFTP接続情報が求められているようです。内部的にファイルアクセス権がないだろうと判断されているということのようです。
対処方法
まず,CGIがどのユーザーで実行されているか確認します。IISマシンにて,以下のコマンドを管理者権限で実行し調べます。
%windir%\System32\inetsrv\appcmd.exe list config "サイト名" /section:anonymousAuthentication
サイト名は IIS マネージャで表示されている名称です。
大方,以下の内容かと思います。
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled=”true” userName=”IUSR” />
</authentication>
</security>
</system.webServer>
赤文字部分が偽装されるユーザーです。このユーザーで各種ファイルへアクセスしようとします。
NTFSアクセス権を調整
WordPress が保存されている ルートフォルダの NTFSアクセス権を変更します。
例えば,C:\inetpub\wwwroot フォルダに一式配置しているとすれば wwwroot フォルダのアクセス権を調整します。
まず,所有者を変更します。
サブコンテナーとオブジェクトの所有者を置き換える にチェックもします。
また,フルコントロールアクセス権を付与します。
補足情報
アプリケーションIDの設定にも偽装ユーザーに関連した項目があります。またサーバーにてCGIのプロセスを見ると確かにアプリケーションIDのユーザーとなっています。しかしCGIを利用してファイルにアクセスする場合のユーザーは異なるようです。上記のコマンドで確認したユーザーとなります。(CGI実行ユーザーも偽装ユーザーにしている場合)
詳しくは,偽装による IIS のコンテンツのセキュリティ保護 をご覧ください。
プロパティ
Microsoft Windows Server 2022
WordPress 6.3.2
コメント