fopen:无法打开流:Mac上的PHP中的权限被拒绝[重复]

Posted

技术标签:

【中文标题】fopen:无法打开流:Mac上的PHP中的权限被拒绝[重复]【英文标题】:fopen: failed to open stream: Permission denied in PHP on Mac [duplicate] 【发布时间】:2017-01-22 17:02:30 【问题描述】:

我写了这段代码:

if (file_exists("testfile.rtf")) echo "file exists.";
else echo "file doesn't exist.";

$fh = fopen("testfile.rtf", 'w') or die("impossible to open the file");

$text = <<< _END
Hi buddies, 
I write for the first time
in a php file!
_END;

fwrite($fh, $text) or die("Impossible to write in the file");
fclose($fh);
echo ("writing in the file 'testfile.rtf' succeed.");

但是当我运行它时它说:

fopen(testfile.rtf):无法打开流:第 64 行 /Applications/XAMPP/xamppfiles/htdocs/test/test1.php 中的权限被拒绝 无法打开文件

我在我的 MAC 上使用 XAMPP 在本地服务器上工作。

我发现了几个主题,有些人有同样的问题,并使用名为“chmod 777”的东西解决了它,但我不知道这是什么意思,在哪里写,等等。

【问题讨论】:

你试过在你的主文件夹中运行它吗?另外:该文件是否真的存在?请相应地编辑您的问题。 【参考方案1】:

您看到的错误只是表示您的 php 脚本没有权限打开 testfile.rtf 进行写入。

不要在任何时候遇到权限问题时都“chmod 777”,这可能会在以后引入安全问题!相反 - 给正确的用户正确的权限。

在这种情况下:

由于您正在运行 XAMPP,因此您需要确保您的 Web 服务器获得对您尝试在其中创建新文件和/或编辑现有文件的特定路径的写入权限。

对于 OSX 和 apache,我相信网络服务器的用户名为“_www”。

这是一个小例子(您可能需要根据需要进行更改):

sudo chown -R _www:_www /path/to/folder

上面的示例将赋予 _www(网络服务器)对 /path/to/folder 及其中所有文件的所有权。

另外:在进行任何基于命令行的管理之前,您可能需要阅读一些有关 unix 命令的信息,例如 chownchmod等。

https://www.techonthenet.com/linux/commands/chown.php https://www.techonthenet.com/linux/commands/chmod.php

希望对你有所帮助!

【讨论】:

我写了 sudo chown -R _www:_www /Applications/XAMPP/xamppfiles/htdocs/test/testfile.rtf 但是终端说:没有这样的文件或目录 @JulienCorbin 在文件夹上试试(没有文件名)

以上是关于fopen:无法打开流:Mac上的PHP中的权限被拒绝[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP的datelog localhost在mac权限被拒绝

fopen(dbinfo.php):无法打开流:权限被拒绝 Ubuntu 12.04 LTS

php/iis:打开流失败:权限被拒绝

move_uploaded_file 无法打开流:权限被拒绝 - Mac

使用 PHP 打开或创建文件时权限被拒绝

Php 错误:无法打开流:CentOS 7.1.1503(核心)中的权限被拒绝