无法打开流:/ opt / lampp / htdocs中的权限被拒绝

问题描述 投票:2回答:3

我使用的是Ubuntu 16.04和xampp 5.6.30。我正在尝试使用带有验证的文件创建一个简单的登录程序,但是在将我的数据放入名为“login.txt”的文件时我遇到了问题。

错误:

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

我的代码:

$input = $userName.'|'.$userPassword.'\n';

$myfile = file_put_contents('login.txt', $input.PHP_EOL , FILE_APPEND | LOCK_EX);
php linux file login warnings
3个回答
7
投票

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

$ sudo chmod -R 777 /path/to/directory

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

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


4
投票

Find Web Server user

ps aux | grep httpd

Web Server Name

In my case its daemon, replace it with yours in next command.

sudo chown -R daemon /opt/lampp/htdocs/[Working Project]/

1
投票

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

$ sudo chmod -R 755 /directory

755 - 这组权限通常用于Web服务器。所有者拥有读取,写入和执行的所有权限。其他人只能读取和执行,但无法对文件进行更改。

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


0
投票

我会推荐两件事。首先,定义login.txt文件的完整路径。

$input = $userName.'|'.$userPassword.'\n';

$loginFile = "/opt/lampp/htdocs/PHP/Practice/PHP Functions/Login Validation/login.txt"

$myfile = file_put_contents($loginFile, $input.PHP_EOL , FILE_APPEND | LOCK_EX);

其次,直接你想写信给:

/opt/lampp/htdocs/PHP/Practice/PHP Functions/Login Validation/

不可写。检查Web服务器正在运行的用户,并授予该用户对该文件夹的读/写权限。

© www.soinside.com 2019 - 2024. All rights reserved.