エラー発生手順
- Eclipse でファイルを開く。
- エディタで編集しようとするとアラート「File ‘xxxxx’ is read-only.Doyu wish to make it writable?」が表示される。
- 「Yes」をクリックして編集できるようになった。
- ある程度編集して、ファイルを保存した。
- また編集して、保存しようとすると再び同じアラートが表示された。
- 「Yes」をクリックすると、前に保存した直後の状態に戻ってしまった。
- 以降、再び編集して保存しようとしてもアラートが表示され、保存されず「前に保存した直後の状態」に戻ってしまう。
一度保存できてから次の保存の時にうまく行かず、しかも何かエラーが表示されるわけでもない、まったく不思議な現象です。
原因がわかるまで随分と苦労いたしましたが、わかりました
ファイルの所有者がカギでした。
Samba で VirtualBox の CentOS へ、Mac の Finder からアクセスして Eclipse のワークスペースに設定しています。このとき、CentOS へは root ユーザーとしてアクセスしています。
一方で、ウェブサーバーのドキュメントルート「/var/www/html/」以下の実行ユーザーは apache です。
Eclipse からファイルを保存しようとすると、所有者が root として保存しようとしますが、もともとの所有者が apache など別である場合、うまく保存できないのです。
CentOS へ ssh などで接続して root ユーザーで 所有者 apache のファイルを編集・保存しても、問題はおきませんし、所有者はもとの apache のままですのに不思議です。
Windows XP で同じ環境を作成して同じ事をしても今回のような問題はおきませんのに、不思議です。
おわりに
Windows の時とは違って、Mac ですとディレクトリとファイルの所有者・パーミッションについても気にしなければなりませんので一癖あります。次の以前の問題に続き、環境が異なれば問題も異なりますのね、としみじみ実感いたしました。
以上です。