我正在为JS开发一个WYSIWYG类型的站点构建器,供不熟悉HTML / CSS的人使用。这一切都已完成,但我希望尽可能简化。在一个完美的世界中,他们只需将所有文件上传到他们的主机并完成它。我遇到的问题是,我有一些文件和文件夹需要写入,但PHP没有权限,除非我将这些特定文件和文件夹清除到777.
我真的不想这样做,希望我有一些选择,也不想因为强迫CHMOD 777而受到批评。有什么我可以做的(对我的用户来说很简单)允许PHP写入文件/文件夹而不必向每个人授予权限吗?
我不能让PHP自己创建文件/文件夹,因为它也无权写入根目录。
答案 0 :(得分:3)
您可以chgrp
将文件发送到Web服务器的组(或PHP,如果它设置为以自己的用户身份运行)和chmod 770
它们。但这不会让你在安全方面受到太大影响。
或者,您可以执行其他一些PHP CMS(如Joomla)所做的事情 - 当需要修改文件时,让服务器通过FTP连接回自身(使用站点所有者的凭据)并上传替换文件。
说实话,但是,你选择允许人们修改服务器上文件的任何方式都会有其陷阱,而安全方面通常几乎与使整个网站全球可写一样糟糕。无论你怎么做,我都建议你确定你的身份验证和访问控制机制是否合适,因为你自己承担了这些责任,特别是当你允许网络用户编辑文件时。
答案 1 :(得分:0)
让用户CHMOD 777成为根目录,让脚本创建新文件夹,然后让他们恢复根目录的权限。