1

我有一个脚本(作为 cron 运行),它创建一个images在服务器上调用的新文件夹,并将图像从根文件夹移动到这个新文件夹。稍后,另一个函数将从这些图像创建缩略图,并将它们放入thumbs同一文件夹内命名的另一个新文件夹中。

但是,此功能仅在父images文件夹出于某种奇怪原因将所有者设置为 99 时才有效。该文件夹将用户作为其默认所有者。

如何让脚本创建所有者设置为 99 的文件夹?或者 PHP 脚本无法对拥有用户为所有者的文件进行 chmod 操作的原因是什么?

4

2 回答 2

2

cron 作业以nobody(UID 99) 运行,因此用户必须具有适当的权限。如果您不想更改权限,则需要让 cron 作业以其他用户身份运行。

于 2011-03-10T02:03:05.107 回答
0

显然,这取决于 php 脚本在 cronjob 中的运行方式,以确定哪个所有者将被设置为新创建文件的默认值。

首先我使用:

/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) 的情况下创建新文件/文件夹,这反过来又允许下一个脚本在此文件夹内创建新文件夹/文件而不会出现问题。

于 2011-03-14T00:23:06.387 回答