1

私はmodmonoでapacheを実行しており、asp.netアプリはそのdbとしてmonosqliteを使用しています。ページを2回更新すると、DBがロックされているというエラーが表示されます。それが入っているフォルダはchmod777です。webappはsqlite.dbとsqlite.db-journalを作成していますが、ジャーナルを削除できないようです。また、ページを一度ロードすると問題が発生します。それは間違いなく許可の問題のようです。

よくわかりません。これらを設定するにはどのような権限が必要ですか?777を使用してファイルを事前作成しようとしましたが、うまくいきませんでした。

-編集-解決策は見つかりませんでしたが、Webアプリケーションにmysqlを使用することを計画していたので、自分がどれほど愚かであるかを考えました。だから私はコードを移植しただけで、もう問題はありませんでした。

4

2 に答える 2

4

ファイルを作成/削除するときは、ディレクトリのアクセス許可が重要です。

したがって、本当に必要な場合は、含まれているディレクトリの権限を777に設定する必要があります。

サンプル:

$ ls -la
total 21
dr-xr-xr-x  2 me me  1024 May 22 19:19 .          #no write permissions to directory
drwxrwxrwt 21 root   root   19456 May 22 19:19 ..
-rwxrwxrwx  1 me me     0 May 22 19:19 abc        #all permissions to file abc
$ rm abc
rm: cannot remove `abc': Permission denied        #abc has 777, but deleting doesn't work
$ chmod 777 .                                     #change directoy's permissions
$ rm abc                                          #now removing works
$ ls                                              #file abc is gone

その理由は、ファイルを削除するときに、ファイル自体ではなく、実際にディレクトリを変更するためです。

ハードリンクについて考えてみましょう。ファイルへのハードリンクを1つ削除しても、ファイル自体は変更されませんが、ディレクトリは変更されます。

于 2010-05-22T17:19:39.670 に答える
0

apacheのセッションの1つのインスタンスが他のセッションをブロックしているように聞こえます。つまり、dbファイルを排他的に開いています。データベース(モデル)を、すべてのセッションがアクセスするシングルトン(または同様のもの)として実行するようにしてください。

于 2010-05-22T17:19:38.097 に答える