我有一台 Linux 服务器,使用 Apache 作为 Web 服务器。在我的 PHP 脚本中,我正在使用 0777
模式创建目录。代码非常简单,如下所示:
mkdir($path,0777)
当我运行这个脚本并进入我的服务器文件管理器时,该文件夹已经存在,但是被分配给它的权限是0755。我搞不懂为什么会这样!!当文件夹被创建时,用户列中显示的是apache,但权限是0755。你可以尝试使用umask函数。
$old = umask(0);
mkdir($path,0777);
umask($old);
chmod ( string $filename , int $mode )
看看是否可以解决权限问题。
可能是您的umask设置:
<?php
$old = umask(0);
mkdir($dir,0777);
mask($old);
?>
Apache 可能没有更改此内容的权限。您可以做的是,确保 Apache 正在与当前文件组相同的组中运行。然后 Apache 将能够更改该文件。您可以在此 Apache 配置中更改 Apache 组。或者最简单的方法是将整个项目用户更改为 Apache 用户。然后 Apache 可以进行任何更改。
从服务器转到文件并键入 ls -al 并查看用户和组