首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未能打开流: /opt/lampp/htdocs中的权限被拒绝

未能打开流: /opt/lampp/htdocs中的权限被拒绝
EN

Stack Overflow用户
提问于 2017-03-31 15:21:39
回答 5查看 76.8K关注 0票数 12

我正在使用Ubuntu16.04和xampp5.6.30。我正在尝试使用带有验证的文件创建一个简单的登录程序,但当我将数据放入一个名为"login.txt“的文件时,我面临着问题。

错误:

代码语言:javascript
运行
复制
file_put_contents(login.txt): failed to open stream: Permission denied in /opt/lampp/htdocs/PHP/Practice/PHP Functions/Login Validation/login.php on line 38

我的代码:

代码语言:javascript
运行
复制
$input = $userName.'|'.$userPassword.'\n';

$myfile = file_put_contents('login.txt', $input.PHP_EOL , FILE_APPEND | LOCK_EX);
EN

回答 5

Stack Overflow用户

发布于 2017-03-31 15:33:57

此错误是由于文件权限造成的。php/apache用户没有在目录中写入的权限。一种修复方法是使用命令chmod更改目录的mod字节。如果会话用户不拥有目录,则执行此修改需要超级权限。

代码语言:javascript
运行
复制
$ sudo chmod -R 777 /path/to/directory

mod 777为系统上的每个用户设置了对目录的读/写和执行。R选项递归地将修改应用于每个文件和子目录。因此,您可以一次性更改htdocs目录所有内容的权限。

https://linux.die.net/man/1/chmod

票数 26
EN

Stack Overflow用户

发布于 2019-03-10 05:55:21

权限错误可以使用以下两种方法来解决。

方法1:

查找web服务器用户

代码语言:javascript
运行
复制
ps aux | grep httpd

注意:如果您没有更改它,默认情况下它将是守护进程

Web服务器名称

在我的例子中,它是守护进程,在下面的命令中用您的守护进程替换它。

代码语言:javascript
运行
复制
sudo chown -R daemon /opt/lampp/htdocs/[Working Project]/

与Linux一样,chown用于更改任何文件夹或文件的所有权。因此,此命令将该文件夹的所有权授予daemon用户,这将使daemon用户能够完全访问该文件夹及其内的所有内容。

方法2:

将所有权限授予该文件。

以下命令授予ReadWriteExecuteUserGroupOwner的权限。所以User就是你,也可以修改它,其他程序,比如文本编辑器,也可以编辑它们,所以PHP也可以。

代码语言:javascript
运行
复制
sudo chmod 777 /opt/lampp/htdocs/[Working Project]/File.txt

在这里,使用数字号码提供权限。

  • 7适用于所有权限-- readwriteexecute
  • 6用于readwrite
  • 5用于readexecute
  • 4仅用于read

权限以ugo模式授予。

  • 777的前7位是User
  • 第二是Group
  • 最后是Others

替代指挥:

代码语言:javascript
运行
复制
sudo chmod u+rwx,g+rwx,o+rwx /opt/lampp/htdocs/[Working Project]/File.txt

在这里,更清楚的是,您要分配给谁的权限。因此,u代表用户,并被分配读(R)、写(W)和执行(E)权限,类似地,g代表Group,o是其他权限。

建议:

方法2不适合于大多数场景。我建议使用第一种方法,因为方法2只会授予文件读、写和执行权限,在该文件中必须首先手动创建该文件。如果您想让php根据您在网站中的逻辑创建文件呢?在这种情况下,此方法将无法工作。如果守护进程将是所有者,它只能这样做。

票数 8
EN

Stack Overflow用户

发布于 2019-07-19 18:03:46

此错误是由于文件权限造成的。文件或文件夹用户没有在目录中写入的权限。

代码语言:javascript
运行
复制
$ sudo chmod -R 755 /directory

755 -这组权限通常在web服务器中使用。所有者拥有读取、写入和执行的所有权限。其他人只能读取和执行,但不能对文件进行更改。

https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43144325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档