私は仕事上はMacがメインなので、本来関係ないTopicsなのですが、友人から相談を受けて、解決するのにちょっと時間がかかったので、ここにメモしておきたいと思います。

お悩み内容

Program FilesにWordpress+周辺環境をインストールして、Wordpressテーマを開発するために直接ファイルを編集しようとしても出来ないというトラブルの相談を受けました。
エディタとして「秀丸」を使っていました。
Windows7 Home Premium edition 32bit

トラブルの主原因

一言で言えば、ユーザ権限が「管理者」では無かったということが原因でした。

最近のWindowsではProgram Filesなどのフォルダ内のファイルは
管理者権限(Administrator)でないと編集できないようになってますよね。

一方でWordpressテーマ開発において、開発中のモノをローカル上で検証する場合
サーバ+データベースetcをPC上にインストールすることになりますが
Program Files内にインストールする場合が多いかと思います。

つまり、Wordpressのテーマのファイルを直接編集するためには
管理者権限じゃないと編集できないのです。
管理者権限を付与するためには、コントロールパネルの
ユーザーアカウント>アカウントの種類の変更で
アカウントの種類に「管理者」を選択する必要があります。

ところが、Windows7では、既存のユーザーアカウントに対して「管理者」を選択できないという現象が起きることがあるようです。(設定を反映させるボタン「アカウントの種類の変更」はグレーアウトして押せない)

この問題は色々なEditionで発生するようで、Proの場合は一応の対策があるようですが(→リンク)残念ながらHome premiumでは根本的な解決策が見つからず。

暫定対応

結局当面のところ、テーマ編集に使っている秀丸エディタを「管理者として実行」することで
ファイル編集する、ということになりました。

また、私が持っているWIn7環境(64bit, Home premium)では、新規ユーザを作成するときに「管理者」を選択すれば、そのユーザは「管理者」になれるようです。一度「一般ユーザ」に変更してしまうと戻れませんが(笑

補足の原因

そもそも今回のユーザIDは、元々「管理者」として登録されていたものでした。しかし、それがいつのまにか、表示はAdministratorと表示されているにも関わらず、実際の権限は「管理者」では無くなってしまっていました。ネットで調べてみると、PC上に複数の「管理者」がいた場合に、この問題が多く発生しているようです。

また、秀丸についてですが、Windows7上での挙動におかしい点があります。
ここに書いている人を発見しました(→リンク)。

以下ざっくりとした説明ですが、
Windows7には、ファイル書き込みが完了しない場合に、そのデータを仮置きしておく仕組みがあります(Keyword: Virtual Store)。しかし、秀丸ではファイル書き込みを完了できなかったファイルを、再度開いた場合に、仮置きしたデータを読み込んで表示してしまうようです。エラーメッセージも出ません。言い換えれば、ファイル書き込みに失敗したデータを、その仮置き場から秀丸が読み込むことによって、秀丸上では編集したデータが見えてしまい、書き込み完了したように見ててしまいます。しかし、当のファイルに対しては書き込みは行えていないので、他のアプリでは編集したファイルを見ることができません。

つまり、秀丸でWordpressのテーマを編集して保存しても、保存できたように見えて実は出来ていないために、ブラウザからWordpressのテーマを確認したときに、編集内容が反映されていないという事でした。

まとめ

今回の流れはこうでした。

  1. 自分のアカウントが、いつのまにか管理者で無くなってしまったために、Program Files内のファイルを直接編集する権限が無くなってしまった。
  2. しかし、秀丸ではファイル編集&書き込み出来ているように見える。
  3. 管理者権限が無くなっていることと、秀丸の動作がおかしいことに気づく。
  4. そこで管理者を付与したいが、前述した通り、上記の通り、管理者権限を付与することが出来ない。
  5. 秀丸を「管理者として実行」することで当面問題回避。

確かにProgram Files内のファイルを直接編集すること自体、好ましいことでは無いのですが、
Windowsは広く使われている故に、様々な状況下で使われていると思います。
個人的には、自己責任においてProgram Files内を触れるように、
管理者の権限は、付与できるようにした方がいいかなと思います。
まあ、多くの人が気軽に管理者権限をつけちゃうと良くないんだけれど。

 

「WordPress Tips」の記事