「File exists」というエラーが出ます

問題の詳細

「すぐ使えるCMS」の管理画面( admin/admin.cgi )にアクセスした時に「ロックが取得できませんでした。」「File exists」というエラーが出る場合の対応方法をご説明します。

※ 1回このエラーが出た後も、正常にアクセスできる場合があります。

エラーメッセージの例

コピー
ロックが取得できませんでした。
can't get exclusive lock; can't mkdir 
(環境によって色々)/data/lock: File exists

エラーメッセージの末尾(上記の青字部分)が「File exists」の場合の対応方法をこのページでご説明します。

このページの案内に該当しないケース

エラーメッセージの末尾(上記の青字部分)が「No such file or directory」か「Permission denied」の場合の場合はこちら を参照して下さい。

原因

直接の原因は、「すぐ使えるCMS」が動作する時に作成・削除している data/lock/ というディレクトリが、作成はできても削除できなかった事によります。

考えられる理由は以下の4パターンありますので、該当する対応方法をお試し下さい。

可能性1:一時的なエラー

原因と詳細

エラーがたまにしか起こらず、少し間をおいて再アクセスした時は問題なく管理画面が動くという場合、サーバに一時的エラーが起こっていた可能性があります。エラーの原因はサーバの全般的な混雑や、アップロードファイルの容量が大きすぎたなどさまざまです。

対応方法

エラーが頻発しないのであれば特に対応の必要はありません(一時的なエラーを完全に除外する事はできません)。エラーが頻発してしまう場合、下の2つの可能性が当てはまらなければより処理能力の高いサーバへの移転か、アップロードするファイル容量を小さくするなど運用の変更をご検討下さい。

可能性2:他のエラーの副次作用

原因と詳細

このエラーの他にも管理画面の操作が完了できないエラーが起こっている場合、そのエラーの方が主因で、このエラー(「File exists」の表示)は副次的に起こっている可能性があります。

対応方法

もう一つのエラーの解消を先に行って下さい。よくある主因となるエラーは以下のとおりです。

ファイルをアップロードしようとした時に「500 Internal Server Error / サーバエラー」というエラーが出る

可能性3:IIS の権限設定

原因と詳細

Windows サーバでWebサーバとして IIS(Internet Information Server/Services)をご利用の場合に、data/ ディレクトリの権限設定が「書き込みはできるが削除ができない」状態となっているとこのエラーが起こります。

この原因の場合、1回管理画面が表示されても次の画面に進んだ時に再度エラーが起こります。手動で data/lock/ ディレクトリを削除するとその後1回だけ正常に管理画面が表示されます。

対応方法

data/ ディレクトリに対してファイルの書き込み権限の他、「フルコントロール」または「サブフォルダーとファイルの削除」という権限を設定して下さい。

可能性4:バージョン

原因と詳細

「すぐ使えるCMS」Ver. 1.1 以下の製品では、Perl のバージョンが 5.005 以下だとこのエラーが起きる場合があります。

この場合、1回管理画面が表示されても次の画面に進んだ時に再度エラーが起こります。1分以上操作の間隔を空けるか、手動で data/lock/ ディレクトリを削除するとその後1回だけ正常に管理画面が表示されます。

対応方法

以下のいずれかをお試し下さい。

  1. 環境変数 $conf{data_dir} の data/ ディレクトリ指定を絶対パスにする
  2. Perl のバージョンアップ(5.6 以上)
  3. 「すぐ使えるCMS」のバージョンアップ