![无法在 ubuntu 14.04 上创建具有完全权限的文件夹](https://linux22.com/image/978848/%E6%97%A0%E6%B3%95%E5%9C%A8%20ubuntu%2014.04%20%E4%B8%8A%E5%88%9B%E5%BB%BA%E5%85%B7%E6%9C%89%E5%AE%8C%E5%85%A8%E6%9D%83%E9%99%90%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我在使用 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