2011-03-10 3 views
1

서버에 images이라는 새 폴더를 만들고 루트 폴더에서이 새 폴더로 이미지를 이동시키는 스크립트 (cron으로 실행)가 있습니다. 나중에 다른 기능을 사용하면 이러한 이미지에서 축소판을 만들고 동일한 폴더 내에 thumbs이라는 새 폴더에 추가합니다.PHP 소유자로 폴더 만들기 99

그러나이 기능은 부모가 images 폴더의 소유자가 이상한 이유로 99로 설정된 경우에만 작동합니다. 폴더는 사용자를 기본 소유자로 가져옵니다.

소유자가 99로 설정된 폴더를 만들려면 어떻게해야합니까? 또는 PHP 스크립트가 사용자를 소유자로 갖는 파일을 chmoding 할 수없는 이유는 무엇입니까?

+0

cron이 PHP 스크립트를 실행하고 있습니까? – Jacob

+0

@jacob 예, 그것은 – Ruben

답변

0

분명히 새로 작성된 파일에서 어떤 소유자가 기본값으로 설정 될지 결정하기 위해 cronjob에서 PHP 스크립트가 실행 된 방법에 따라 다릅니다.

는 우선 사용 :

/usr/local/bin/php /home/username/public_html/script.php > /home/username/public_html/file.xml 2>&1 

하지만이 '이름'으로 설정 소유자와 새 폴더를 만들었습니다. 대신 컬 사용

:

/usr/bin/curl -s http://domain.com/script.php > /home/username/public_html/file.xml 2>&1 

허용 새 파일/폴더의 회전이 내부에 새 폴더/파일을 만들려면 다음 스크립트를 허용 nobody (UID 99)로 설정 소유자와 생성 될 폴더에 문제없이.

+0

입니다. 명령 줄에서 PHP를 실행하면 아파치를 통해 PHP를 모듈로 실행할 때와 100 % 다릅니다. 그래서 '컬 (curl)'방법이 효과적입니다. 'curl'을 통해 PHP 스크립트를 실행하면 PHP 모듈이 Apache 모듈을 통해 실행되고 웹 서버 사용자에 대한 사용 권한이 정확히 설정됩니다. – JakeGould

2

cron 작업이 nobody (UID 99)으로 실행 중이므로 사용자에게 적절한 권한이 있어야합니다. 권한을 변경하지 않으려면 cron 작업을 다른 사용자로 실행시켜야합니다.