1

imagesサーバー上に呼び出される新しいフォルダーを作成し、ルートフォルダーからこの新しいフォルダーに画像を移動するスクリプト(cronとして実行)があります。後で別の関数がこれらの画像からサムネイルを作成しthumbs、同じフォルダ内の名前が付けられた別の新しいフォルダに配置します。

ただし、この関数は、images奇妙な理由で子育てフォルダの所有者が99に設定されている場合にのみ機能します。フォルダは、ユーザーをデフォルトの所有者として取得します。

所有者が99に設定されたフォルダーを作成するスクリプトを取得するにはどうすればよいですか?または、PHPスクリプトに、ユーザーを所有者とするファイルをchmodする機能がない理由は何でしょうか。

4

2 に答える 2

2

cronジョブはnobody(UID 99)として実行されているため、ユーザーには適切な権限が必要です。権限を変更したくない場合は、cronジョブを別のユーザーとして実行する必要があります。

于 2011-03-10T02:03:05.107 に答える
0

どうやら、新しく作成されたファイルのデフォルトとして設定される所有者を決定するために、cronjobでphpスクリプトがどのように実行されたかに依存しているようです。

最初に使用したもの:

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

しかし、これにより、所有者が「ユーザー名」に設定された新しいフォルダーが作成されました。

代わりにcurlを使用します。

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

所有者をnobody(UID 99)に設定して新しいファイル/フォルダーを作成できるようにしました。これにより、次のスクリプトでこのフォルダー内に問題なく新しいフォルダー/ファイルを作成できるようになりました。

于 2011-03-14T00:23:06.387 に答える