문제

내 PHP 소프트웨어가 자동 업데이트를 할 수 있기를 원합니다. 이것이 작동하기 위해서는 기존 및 존재하지 않는 파일에 PHP를 쓸 수 있어야합니다 (생성). 대상 파일을 0777로 chmod 한 다음 작성하면 항상 작동합니까? 아니면 PHP/Apache/WTVR 프로세스가 파일의 소유자가되어야합니까?

때로는 사람들이 FTP 계정을 사용하여 업로드 할 때 소유자가 PHP 프로세스와 다를 수 있습니다. 이것이 문제입니까?

편집 : PHP 애플리케이션을 구축하고 있는데 앱이 실행되는 구성을 알 수 없으며 서버 관련 설정을 수정할 수 없습니다. Chown (), chmod ()와 같이 PHP가 할 수있는 일을 할 수 있습니다.

도움이 되었습니까?

해결책

FTP를 통해 파일을 업로드 할 때 파일의 소유권이 FTP 사용자의 소유권이 변경되어 과거에 몇 가지 권한 문제가 발생했습니다.

우리는 그룹을 사용하여 이것을 반올림합니다

예를 들어, 파일에 액세스하기위한 사용자 그룹을 만들고 Apache Plus 각 FTP 사용자를 그룹에 추가 할 수 있습니다.

usermod -a -G appUpdaters www
usermod -a -G appUpdaters ftp1
usermod -a -G appUpdaters ftp2
etc...

그런 다음 파일/폴더를 사용자 + 그룹으로, Chmod를 775로 옮길 수 있습니다.

chown www.appUpdaters foldername
chmod 775 foldername

이렇게하면 소유권이 ftp1.appupdaters 또는 ftp2.appupdaters로 변경되면 다른 사용자는 여전히 파일에 쓸 수 있습니다.

내가 말했듯이, 나는 내가 사용하는 모든 서버에서 이것을 필요로하는 것 같지 않으므로 서버 구성에 의존하는지 여부는 추측합니다. 당신이 그룹을 사용하기로 결정했다면,이 링크가 때때로 유용하다고 생각합니다.

http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

다른 팁

www 서버가 소유 한 폴더를 소유하고자하는 폴더를 만드십시오. 그런 다음 PHP 스크립트가 Chmodded 755 인 경우 해당 폴더에 쓸 수 있습니다.

# chown www somefolder
# chmod 755 !$

(www가 소유 한 웹 파일에서 다른 물건을 만들지 마십시오).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top