我在使用 Ubuntu 14.04 作为服务器的 VPS 上遇到了一个奇怪的问题。我尝试使用下面的代码通过 php mkdir 创建目录
<?php
mkdir("/items/foldername", 0777, true);
?>
每当我运行此脚本时,都会创建文件夹,但权限为 755 而不是 777。
我尝试了所有可用的选项,但发现没有一个有效。我的 php 脚本正在使用 www-data。
我已经尝试过以下
sudo chmod -R 777 items
sudo chmod -R g+s items
- 我已添加
www-data
到根组
答案1
由此所以回答:
您可以
umask()
在 fopen() 调用之前立即使用,但是如果您在多线程服务器上,则不应使用 umask - 它将更改所有线程的掩码(例如,此更改在进程级别),而不仅仅是您即将使用 fopen() 的线程。例如
$old = umask(000); fopen('foo.txt', 'w'); // creates a 0666 file umask($old) // restore original mask
然而,事后简单地使用 chmod() 会更容易:
fopen('foo.txt', 'w'); // create a mode 'who cares?' file chmod('foo.txt', 0666); // set it to 0666