我有一个简单的 PHP 脚本,它创建一个文件夹,然后将某些文件复制到其中。该文件夹(和复制的文件)拥有所有 755 权限。问题是,它将用户设置为 Apache。现在我无法通过 FTP 删除或更改权限。我只能在我的 DirectAdmin 中“重置所有权”。在那里我可以看到用户从“Apache”变为“matthdc58”。
如何让 PHP 创建一个以“matthdc58”为用户的文件夹?我试过chown()
了 - 失败了:
Warning: chown() [function.chown]: Operation not permitted in /home/matthdc58/domains/hiddendomain.com/public_html/Home.php on line 78
Warning: chown() [function.chown]: Operation not permitted in /home/matthdc58/domains/hiddendomain.com/public_html/Home.php on line 79
Warning: chown() [function.chown]: Operation not permitted in /home/matthdc58/domains/hiddendomain.com/public_html/Home.php on line 80
Warning: Cannot modify header information - headers already sent by (output started at /home/matthdc58/domains/hiddendomain.com/public_html/Home.php:78) in /home/matthdc58/domains/hiddendomain.com/public_html/Home.php on line 90
php_flag safe_mode off
我也在我的 .htaccess 中尝试过(似乎解决了其他人的问题) ,但没有成功。
我的整个 PHP 脚本:
$dirtocreate = 'userdata/'.$_SESSION['uname'];
$oldumask = umask(0);
mkdir($dirtocreate, 0755);
umask($oldumask);
copy('img/100x100.png', $dirtocreate.'/100x100.png');
copy('img/64x64.png', $dirtocreate.'/64x64.png');
//Verify correct owner
chown($dirtocreate, 'matthdc58');
chown($dirtocreate.'/100x100.png', 'matthdc58');
chown($dirtocreate.'/64x64.png', 'matthdc58');
//Verify correct permissions, just to be sure
chmod($dirtocreate,0755);
chmod($dirtocreate.'/100x100.png',0755);
chmod($dirtocreate.'/64x64.png',0755);
所以,只是为了澄清:
- 我的 PHP 脚本将新文件夹的所有者设置为“Apache”。
- PHP 脚本无法将所有者更改为“matthdc58”。
- 现在,我无法通过 FTP 编辑该文件夹,因为所有者是“Apache”。
- 我只能通过 DirectAdmin 使用“恢复所有权”按钮恢复所有权。