2011-03-10 45 views
1

我有一个脚本(作为cron运行),在服务器上创建一个名为images的新文件夹,并将图像从根文件夹移动到此新文件夹。稍后,另一个功能将从这些图像创建缩略图,并将这些图像放入同一文件夹内名为thumbs的另一个新文件夹中。PHP与所有者创建文件夹为99

但是,此功能只适用于父母images文件夹由于某种奇怪原因已将所有者设置为99的情况。该文件夹将用户作为其默认所有者。

我怎样才能让脚本创建一个文件夹,将所有者设置为99?或者是什么原因导致PHP脚本无法以chmod-ing文件的形式拥有用户作为所有者?

+0

cron是否运行一个php脚本? – Jacob 2011-03-10 02:05:02

+0

@jacob是的,它是 – Ruben 2011-03-10 22:19:29

回答

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),这反过来允许下一个脚本来创建这里面新的文件夹/文件的所有者创建的文件夹文件夹没有问题。

+0

当您从命令行运行PHP时,它与通过Apache将PHP作为模块运行时不同。这就是你的'curl'方法起作用的原因。当你通过'curl'运行时,PHP脚本通过Apache模块运行,然后为Web服务器用户设置权限,这正是你想要的。 – JakeGould 2014-07-13 04:37:37

2

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