使用 fopen() 函数为学校测试 php 文件,但由于权限问题,该文件无法运行?

使用 fopen() 函数为学校测试 php 文件,但由于权限问题,该文件无法运行?

我在笔记本电脑上使用 Ubuntu。每次我打开它,在 Ubuntu 初始化后,它都会要求我输入管理员密码,我提供了密码,以便能够使用它。我已经安装了 Sublime2,我正在学习 PHP/MySQL 的第一步,我在编程课上使用这台 Ubuntu 笔记本电脑。今天,我们需要第一次做一些 fopen() 测试。

我创建了一个文件并向其中添加了以下代码:

error_reporting(E_ALL ^ E_NOTICE);
$fp=fopen("prueba.txt",'w');
fwrite($fp, 'Curso de PHP');
fclose($fp);
echo 'Horray';

现在,当我尝试运行该文件时(我使用 Xampp 作为我的本地 apache,使用 chrome 作为我的浏览器),出现此错误(并且该文件根本没有创建):

警告:fopen(prueba.txt):无法打开流:/opt/lampp/htdocs/curso_php1/inicial/ejemplo-archivos.php 第 25 行中的权限被拒绝

警告:fwrite() 期望参数 1 为资源,/opt/lampp/htdocs/curso_php1/inicial/ejemplo-archivos.php 第 26 行中给出布尔值

警告:fclose() 期望参数 1 为资源,/opt/lampp/htdocs/curso_php1/inicial/ejemplo-archivos.php 第 27 行中给出布尔值

回到家后,我在我的 Windows 机器上再次尝试了代码,一切都按预期工作,没有任何错误。

似乎我没有足够的权限(无法打开流:权限被拒绝), 这是为什么?

为什么会发生这种情况?我该怎么办?谢谢!”

答案1

运行 XAMPP 的用户显然没有权限写入/opt/lampp/htdocs/curso_php1/inicial/。我会尝试写入具有更宽松权限的位置的另一个文件,例如/tmp/

此外,如果您不需要使用 XAMPP,而只需要一个可以运行的 Apache,请尝试使用 Ubuntu 提供的软件包。根据我的经验,由于不必自己配置 Apache 和 PHP 而带来的一点舒适感从长远来看不值得为权限和更新而烦恼。

答案2

我发现当这种情况发生时,命令是这些(我在这里发布它以防其他人碰巧遇到同样的问题):

sudo chown -R myUserName /opt/lampp
sudo chmod -R 777 /opt/lampp 

我知道授予权限 777 不够安全,但由于我在本地主机中需要它,并且我只将它用于我的编程课程,所以我认为没问题。

希望有一天这能对某人有所帮助。

相关内容