파일 소유권에 관해 질문이 있습니다.
나는 drupal 웹사이트를 가지고 있고 사용자가 PHP를 사용하여 파일을 업로드할 수 있도록 하려면 "www-data"가 "files" 폴더를 소유해야 합니다.
그러나 이제 svn을 사용하고 있으며 이것이 작동하려면 우분투 사용자가 모든 폴더와 파일을 소유해야 합니다.
파일에는 775개의 권한이 있으므로 사용자와 그룹 모두 파일에 대한 모든 액세스 권한을 갖습니다.
내 우분투 사용자를 www-data 그룹에 추가했지만 여전히 작동하지 않습니다. 이유는 모르겠습니다. 그룹을 내 우분투 사용자 그룹으로 변경하려고 시도했지만 여전히 작동하지 않습니다.
또한 우분투 사용자를 소유자로 설정하고 www-data를 그룹으로 설정하려고 시도했지만 이 경우 웹 서버 PHP 스크립트는 더 이상 파일을 폴더에 업로드할 수 없습니다(이 그룹은 전체 권한을 가지고 있기 때문에 다시 이상합니다).
답변1
모든 유형의 웹 개발에는 일반적으로 개발과 프로덕션에 다르게 접근해야 하는 몇 가지 이유가 있습니다. 개발을 위해 홈 디렉터리에 웹 사이트의 로컬 복사본을 두는 것이 편리하지만 프로덕션에 변경 사항을 적용하기 전에 일부 작업이 완전히 작동하지 않아도 괜찮다는 점을 인정하세요.
Drupal 권한 체계를 사용자 계정 권한 체계에 연결하려고 해서는 안 됩니다. 프로덕션 Drupal 항목을 /var/www/html
어디에나 배치하고 Apache/PHP/Drupal을 행복하게 만들 수 있는 모든 권한을 갖습니다. 나만의 개발 트리를 만들어보세요.
사이트의 새로운 기능 작업을 마칠 때마다 일종의 동기화 도구를 사용하여 개발에서 프로덕션으로 변경 사항을 푸시하고 그 과정에서 새로운 권한을 얻으세요.
개인적으로 저는 rsync
이것을 사용합니다. 터널링이 간단 rsync
하기 때문에 프로덕션 서버가 인터넷에 걸쳐 있을 수 있다는 장점이 있습니다 ssh
. 일반적으로 자체 LAN이 아닌 서버에서 웹 사이트를 호스팅하는 데에는 충분한 이유가 있기 때문에 이는 웹 개발의 중요한 기능입니다. 내 웹사이트에는 다음 명령을 사용합니다.
rsync -lprtvD -e ssh --delete \
--exclude \*.swp \
--exclude .svn \
--exclude GNUmakefile \
./ [email protected]:/var/www/html
www
이 명령은 에서 사용자가 파일을 소유하게 하여 www.mysite.com
개발 권한 체계를 프로덕션 환경에서 분리합니다.
대신 SVN을 사용하고 싶은 것 같군요. 괜찮습니다. 개발 머신과 프로덕션 머신 모두 SVN 서버를 볼 수 있도록 만들기만 하면 됩니다. rsync와 마찬가지로 ssh
보안상의 이유로 여기에서 SVN 프로토콜을 터널링 하려고 합니다 . 변경 사항을 프로덕션에 적용해야 하는 경우 SVN에 체크인한 다음 프로덕션 상자에서 체크아웃합니다. 실제로 웹 서버 트리 전체에 흩어져 있는 하위 디렉터리를 피하는 것 svn export
보다 사용하는 것이 좋습니다. rsync 메서드는 규칙을 통해 이러한 상황을 방지합니다 .svn checkout
.svn
--exclude