我正在使用Ubuntu16.04和xampp5.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);发布于 2017-03-31 15:33:57
此错误是由于文件权限造成的。php/apache用户没有在目录中写入的权限。一种修复方法是使用命令chmod更改目录的mod字节。如果会话用户不拥有目录,则执行此修改需要超级权限。
$ sudo chmod -R 777 /path/to/directorymod 777为系统上的每个用户设置了对目录的读/写和执行。R选项递归地将修改应用于每个文件和子目录。因此,您可以一次性更改htdocs目录所有内容的权限。
发布于 2019-03-10 05:55:21
权限错误可以使用以下两种方法来解决。
方法1:
查找web服务器用户
ps aux | grep httpd注意:如果您没有更改它,默认情况下它将是守护进程。
在我的例子中,它是守护进程,在下面的命令中用您的守护进程替换它。
sudo chown -R daemon /opt/lampp/htdocs/[Working Project]/与Linux一样,chown用于更改任何文件夹或文件的所有权。因此,此命令将该文件夹的所有权授予daemon用户,这将使daemon用户能够完全访问该文件夹及其内的所有内容。
方法2:
将所有权限授予该文件。
以下命令授予Read、Write和Execute对User、Group和Owner的权限。所以User就是你,也可以修改它,其他程序,比如文本编辑器,也可以编辑它们,所以PHP也可以。
sudo chmod 777 /opt/lampp/htdocs/[Working Project]/File.txt在这里,使用数字号码提供权限。
7适用于所有权限-- read、write和execute。6用于read和write。5用于read和execute。4仅用于read。权限以ugo模式授予。
User。Group。Others。替代指挥:
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根据您在网站中的逻辑创建文件呢?在这种情况下,此方法将无法工作。如果守护进程将是所有者,它只能这样做。
发布于 2019-07-19 18:03:46
此错误是由于文件权限造成的。文件或文件夹用户没有在目录中写入的权限。
$ sudo chmod -R 755 /directory755 -这组权限通常在web服务器中使用。所有者拥有读取、写入和执行的所有权限。其他人只能读取和执行,但不能对文件进行更改。
https://www.maketecheasier.com/file-permissions-what-does-chmod-777-means/
https://stackoverflow.com/questions/43144325
复制相似问题