2010-05-22 8 views
1

mod 모노로 아파치를 실행하고 있고 asp.net 앱이 모노 sqlite를 db로 사용하고 있습니다. 페이지를 두 번 새로 고치면 DB에 잠겨있는 오류가 발생합니다. 폴더는 chmod 777입니다. webapp은 sqlite.db 및 sqlite.db-journal을 만들고 있지만 저널을 삭제할 수없는 것 같습니다. 또한 한 번 페이지를로드 할 때 문제가 있습니다. 확실히 허가 문제 인 것 같습니다.페이지 새로 고침시 데이터베이스 잠김 오류 받기

나는 혼란 스럽다. 이 권한을 설정하려면 어떤 권한이 필요합니까? 나는 777을 사용하여 파일을 precreating 시도하고 운이 없었습니다.

-edit- 나는 해결책을 찾지 못했지만, 나는 내 webapp 용으로 mysql을 사용할 계획 이었기 때문에 어리석은 생각이 들었다. 그래서 난 그냥 코드를 포팅하고 더 이상 문제가 없었다.

+0

농담 제목은 나 또는 Google을 통한 향후 검색에 도움이되지 않습니다. –

+0

또한 mod_mono를 사용하는 태그를 추가해야합니다. 예를 들어 php의 경우 suPHP를 사용하여 권한 문제를 "해결"할 수 있습니다. – SztupY

답변

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 

이유는, 당신이 실제로 을 수정된다 디렉터리 아니며 파일 자체가 아닙니다.

하드 링크 생각해보기 : 하드 링크 하나를 삭제해도 파일 자체는 변경되지 않지만 디렉토리는 변경됩니다.

+0

ok 그건 괜찮아요하지만 내가 말한대로 그것이있는 폴더도 777입니다. 그래서 나는 혼란스러워. –

0

apache에서 세션의 한 인스턴스와 비슷한 소리가 다른 세션을 차단하고 있습니다. 즉, db 파일을 독점적으로 엽니 다. 데이터베이스 (모델)가 모든 세션이 액세스하는 싱글 톤 (유사)으로 실행되도록하십시오.

+0

이 문제는 Windows에서는 발생하지 않습니다. 또한 주 데이터베이스 (저널이 아닌)가 전혀 쓰여지지 않은 것처럼 보입니다. (파일을 미리 만든 다음 chmod 777 파일을 새로 고친 후 0 바이트 였고 방금 만든 이후 아무 것도 잠금이 없었습니다) –

관련 문제