我刚安装了Ubuntu和LAMPP。 对于这一切我都很新,所以对我很感兴趣。 我已经安装LAMPP到/ opt / lampp
我的/ opt / lampp / htdocs文件夹是http:// localhost指向的地方。 在过去的一个小时里,我无法写在那个目录中。 我终于做了sudo chown rondog /opt/lampp/htdocs ,现在我不能写了。 (rondog是我,机器上唯一真正的“用户”)
当我运行我的一个PHP脚本时,当我尝试调用一个fopen方法时,我得到一个权限被拒绝的错误。 我需要做什么,我可以写入这个文件夹以及PHP可以执行诸如fopen和fwrite之类的命令? 谢谢
一种可能性是将Apache用户和组设置为rondog 。 这样,您和服务器始终可以使用创build的文件夹和文件。 它可以做到如下:
编辑(或创build,如果它不存在) /etc/apache2/httpd.conf并添加以下行:
User rondog Group rondog
保存该文件并重新启动服务器:
$ sudo /etc/init.d/apache2 restart
无论何时使用,都应该popup新添加的用户:
$ ps aux | grep apache
一个build议,但请保持您的本地主机文件在您的主目录。 如果你想要一个新的Ubuntu版本的干净更新,如果你将个人文档保存在你的主目录中,切换起来会容易得多。 而且,在这种情况下,每次创build新文件夹时都不必使用sudo chown命令。
你有几个select在这里。 你要么做Tim H的build议:
chmod -R 777
这将为每个人设置读写权限。
但通常这太宽泛了。 您也可以创build一个新的组,将自己和Web服务器用户放在里面,只允许你两个人访问和写入文件:
$ sudo -i # addgroup lamppusers # adduser rondog lamppusers # adduser www-data lamppusers # check, that www-data is the correct user # chown -R :lamppusers /opt/lampp/htdocs # chmod g+srwx /opt/lampp/htdocs
如果您不确定,如果www-data是正确的LAMPP用户,请发出
cat /etc/passwd
并寻找一条线,看起来像是LAMPP使用的用户。 否则,如果您之前已经安装了chmod 777,请使用ls -l查看PHP生成的文件,以查看它们属于哪个人。
g+srwx是写入777访问权限的另一种方式,但是另外设置了粘性位 。
最后,如果你需要更多的细粒度的访问权限,谷歌的文件访问控制列表(ACL)。 它们允许在每个用户的基础上定义访问权限。
你有没有尝试过
chmod -R 0777 /opt/lampp/htdocs