2012-11-13 2 views
0

저는 Linux와 Ruby 멍청이니까요. 나와 함께하시기 바랍니다.폴더를 만들 때 EACCES 오류가 발생합니다.

Sinatra를 사용하여 작은 Ruby 앱을 작성하고 Linux 서버에 Capistrano를 사용하여 배포합니다. 성공적으로 로컬에서 아무런 문제없이 앱을 실행할 수 있었거나 심지어 rack -p 4567을 사용하여 원격으로 실행할 수있었습니다.

내 응용 프로그램은 과이 하위 디렉토리 및 /foo 디렉토리의 파일을 사용하여 디렉토리 (/foo)를 만듭니다. 데몬 -D 옵션을 사용하여 랙을 실행할 때 /foo 폴더를 만들 때 갑자기 파일 사용 권한 오류가 발생합니다.

rackup -D -p 4567 

나는 이것이 파일 사용 권한과 관련이 있다는 것을 알고 있지만 여기서는 무엇을 설정해야할지 모르겠다. 웹은 chmod를 권장하지만 쉘에서 돌아가고있는 경우라면 그렇지 않습니까? 나는 0700 또는 0777Dir::mkdir에 전달하려고 시도했지만 도움이되지 않았습니다. 데몬에 디렉터리와 파일을 만들 수있는 권한을 부여하려면 어떻게해야합니까?

답변

0

내 앱에서 절대 경로를 사용하지 않았기 때문에 이것이 나타납니다. 그래서 현재의 작업 디렉토리는 루비가있는/usr/bin을 가리키고있다.

File.expand_path(File.dirname(__FILE__))을 사용하면 스크립트의 경로를 얻을 수 있습니다.

관련 문제