我正在计划我的linux / apache / PHP web项目的目录结构,如下所示:
只有www.example.com/webroot/才会在apache中公开
www.example.com/
webroot/
index.PHP
comp1/
comp2/
component/
comp1/
comp1.class.PHP
comp1.js
comp2/
comp2.class.PHP
comp2.css
lib/
lib1/
lib1.class.PHP
组件/和lib /目录只能在PHP路径中.
为了使webroot目录中的css和js文件可见,我计划使用符号链接.
webroot/
index.PHP
comp1/
comp1.js (symlinked)
comp2/
comp2.css (symlinked)
我尝试遵循以下原则:
>按组件和库布局,而不是按文件类型而不是“public”或“non public”,index.PHP是一个例外.这是为了更容易开发.
>公开onle公共Web目录中的最小文件集,并使其他所有内容无法访问Web.将组件和库需要公开的文件符号化到公共位置,但仍然镜像布局.因此,组件和库结构也可以在链接中生成的HTML代码中看到,这可能有助于开发.
> git的使用应该是安全的并且始终有效.可以按照一些程序将符号链接添加到git中,但是在检查完它们之后,应该安全地处理更改分支.
说到图像,我需要链接目录,如何用git处理?
component/
comp3/
comp3.class.PHP
img/
img1.jpg
img2.jpg
img3.jpg
它们应该链接在这里:
webroot/
comp3/
img/ (symlinked ?)
如果使用符号链接有缺点,我可以直接将图像移动到webroot / tree,这将打破第三个原则(git实用性).
最佳答案
一旦你需要在其他地方重用一些文件,就应该开始考虑components或(在git中)submodules
原文链接:https://www.f2er.com/linux/441000.html您可以定义:而不是在同一个仓库(SVN或“Centralized way” for CVCS)中管理webroot,comp和lib,
> n repos,每个组件需要重用一次(例如’img’将是一个Git repo,重新用作webroot中的子模块)
>一个主要项目,用于引用您需要的那些子模块的精确修订.
这是符号链接子模块的优点之一:您引用一个精确的修订版本,如果该组件有自己的一些演变,则不会立即看到它们(直到您更新子模块为止).
使用符号链接,您可以看到该链接另一端的文件集是什么状态.