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

时间:2017-03-31 15:21:40

标签: php linux file login warnings

我使用的是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);

5 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:2)

查找Web服务器用户

ps aux | grep httpd

Web Server Name

就我而言,它是守护进程,在下一个命令中将其替换为您的守护进程。

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

答案 2 :(得分:1)

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

$ sudo chmod -R 755 /directory

755 – Web服务器通常使用此权限集。所有者拥有读取,写入和执行的所有权限。其他所有人只能读取和执行,但不能更改文件。

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

答案 3 :(得分:0)

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

var a = b?.c?.d

其次,您直接尝试写信:

$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);

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

答案 4 :(得分:-1)

$ sudo chmod -R 777 /opt/lampp/htdocs/ 

编写此代码,然后按Enter