无法打开流:权限被拒绝在/ opt/lampp/htdocs
问题描述:
我使用的是Ubuntu 16.04 & xampp 5.6.30。我正在尝试使用带有验证的文件创建简单的登录程序,但在将数据放入名为“login.txt”的文件中时,我面临问题。无法打开流:权限被拒绝在/ opt/lampp/htdocs
错误:
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/apache用户没有写入目录的权限。一种解决方法是用命令chmod
更改目录的mod字节。如果会话用户不拥有该目录,则需要超级权限才能执行此修改。
$ sudo chmod -R 777 /path/to/directory
国防部777
集读/写和执行,以目录系统上的每个用户。 R
选项递归地将修改应用于每个文件和子目录。因此,您可以一次更改htdocs目录中所有内容的权限。
答
我推荐两件事情。首先,定义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服务器正在运行的用户,并为该用户提供对该文件夹的读/写权限。
这是一个权限被拒绝的错误...您是否将'login.txt'文件保存在'/ opt/lampp/htdocs/PHP/Practice/PHP Functions/Login Validation /'文件夹中? ,然后运行这个命令'stat theFolder'并发布输出。 – Hackerman