【发布时间】:2015-04-14 17:05:31
【问题描述】:
这里有几个类似的问题,such as this one,但这个问题(以及我读过的其他几个问题)的答案是:
首先让 PHP 自己创建目录。
我在我的网站上使用git,因此不可能允许 PHP “自行创建目录”。
为了进行更改,我在通过 SSH 登录到我的服务器时运行 git pull origin master 命令,这使文件的所有者成为我登录时使用的 cpanel 用户。
我需要 PHP 能够在某些目录中创建文件。是唯一的方法可以让chmod 文件夹到777,还是有更好的方法?
我对 Linux 权限没有很好的了解,但从我读到的内容来看,将目录和文件权限更改为 777 通常不是一个好主意。此外,如果我chmod777 的文件夹,我怀疑当我运行git pull origin master 时权限会被覆盖,虽然我还没有测试过。
【问题讨论】:
-
使用shell_exec制作文件和目录
-
@Daan 如前所述,我使用的是
git。它创建目录和文件。 -
您可以将目录分配给运行网络服务器的用户。但我认为将任何内容写入 git checkout 的需求有点粗略。我建议将这些文件放在文档根目录之外,以便它们与 git 文件在物理上分开。
-
好的,但是站点地图生成器并不是实时的(是吗?),并且可以从 cron 作为已经具有写入权限的用户运行——你不希望任何人在web 能够启动您的维护脚本。关于日志,如果您必须让它们可以通过网络访问,那么就不要将它们放在 git 已经创建的目录中 - 将它们放在新目录中,那么就不用担心冲突了。
-
更好的是,将日志放在文档根目录之外的新目录中,从文档根目录中符号链接到它,然后确保您的 Web 服务器配置为从不从该目录执行 PHP。跨度>
标签: php linux git permissions chmod