小規模Webサイト向け CMS 「すぐ使えるCGI」のサポート情報

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

最終更新日: 2013-08-02

問題の詳細

「すぐ使えるCGI」の管理画面( 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」の場合の場合はこちら を参照して下さい。

原因

直接の原因は、「すぐ使えるCGI」が動作する時に作成・削除している data/lock/ というディレクトリが、作成はできても削除できなかった事によります。
考えられる理由は以下の3パターンありますので、該当する対応方法をお試し下さい。

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

原因と詳細

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

対応方法

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

可能性2:IIS の権限設定

原因と詳細

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

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

対応方法

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

可能性3:バージョン

原因と詳細

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

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

対応方法

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

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

関連リンク

さらに詳しく