php 创建文件的权限
php permissions to create a file
我是 运行 lubuntu 上的 apache 服务器,我正在尝试使用 php 编写用户随后可以下载的文本文件。我这样更改了权限:
sudo chmod 775 /var/www -R
但是我执行脚本的时候还是报错:
Warning: fopen(3): failed to open stream: Permission denied in
/var/www/myPage.php on line 217 Could not open file!
这里是 php 代码:
$filename = $liste[0][0];
$fh = fopen($filename, "x+") or die("Could not open file!");
fwrite($fh, "foo") or die("Could not write to file");
fclose($fh);
我需要更改其他权限吗?还是有另一种方法可以做我想做的事情?
谢谢
写入文件夹需要 Apache 用户对该文件夹具有写入、读取和执行权限。
因此,首先尝试识别 Apache 用户的名称(通常是 www-data)。
然后检查该用户是否是您要写入文件的文件夹的所有者或组。
为该用户授予对该文件夹的写入、读取和执行 (7) 权限。给其他不需要写入同一文件夹的读取和执行权限 (5)。
(推荐)为 www-data 用户授予对文件的写入和读取 (6) 权限。其他人只需要读取权限 (4).
如果 www-data 既不是所有者也不属于文件组,那么您应该更改其中之一。执行此操作后,如果您使用 www-data 和 root 以外的用户(如 "webeditor")访问服务器,您可能会发现自己无法访问 web 文件夹,并且该用户既不是所有者也不在组.
我推荐:
将所有者和组设置为 Apache user/group。
chown -R www-data:www-data /var/www
将 webeditor 用户(或您用来通过 ssh 或 ftp 连接到服务器的用户)添加到 www-data 组。
usermod -a -G www-data webeditor
将写入、读取和执行权限授予文件夹所有者。避免其他人的写入权限。
find /var/www -type d -exec chmod 755 {} \;
文件不需要执行权限。 www-data用户只需要读写,其余只需要读权限,所以644足够我们的文件了。
find /var/www -type f -exec chmod 644 {} \;
我是 运行 lubuntu 上的 apache 服务器,我正在尝试使用 php 编写用户随后可以下载的文本文件。我这样更改了权限:
sudo chmod 775 /var/www -R
但是我执行脚本的时候还是报错:
Warning: fopen(3): failed to open stream: Permission denied in /var/www/myPage.php on line 217 Could not open file!
这里是 php 代码:
$filename = $liste[0][0];
$fh = fopen($filename, "x+") or die("Could not open file!");
fwrite($fh, "foo") or die("Could not write to file");
fclose($fh);
我需要更改其他权限吗?还是有另一种方法可以做我想做的事情? 谢谢
写入文件夹需要 Apache 用户对该文件夹具有写入、读取和执行权限。
因此,首先尝试识别 Apache 用户的名称(通常是 www-data)。
然后检查该用户是否是您要写入文件的文件夹的所有者或组。
为该用户授予对该文件夹的写入、读取和执行 (7) 权限。给其他不需要写入同一文件夹的读取和执行权限 (5)。
(推荐)为 www-data 用户授予对文件的写入和读取 (6) 权限。其他人只需要读取权限 (4).
如果 www-data 既不是所有者也不属于文件组,那么您应该更改其中之一。执行此操作后,如果您使用 www-data 和 root 以外的用户(如 "webeditor")访问服务器,您可能会发现自己无法访问 web 文件夹,并且该用户既不是所有者也不在组.
我推荐:
将所有者和组设置为 Apache user/group。
chown -R www-data:www-data /var/www
将 webeditor 用户(或您用来通过 ssh 或 ftp 连接到服务器的用户)添加到 www-data 组。
usermod -a -G www-data webeditor
将写入、读取和执行权限授予文件夹所有者。避免其他人的写入权限。
find /var/www -type d -exec chmod 755 {} \;
文件不需要执行权限。 www-data用户只需要读写,其余只需要读权限,所以644足够我们的文件了。
find /var/www -type f -exec chmod 644 {} \;