我正在尝试使用CodeIgniter,GIT和Apache 2与几个Web开发人员一起开发Web应用程序(PHP / MySQL)。为了建立一个每个开发人员都拥有自己的lil'虚拟沙箱服务器的环境,我想要为每个开发人员创建Apache上的虚拟主机(由端口隔离),每个开发人员都有一个钩子,可以将他们提交的代码复制到他们的Web根目录(他们的虚拟主机)。唯一的问题是最终每个开发人员都会将他们的代码推送到中央开发服务器,他们的每个代码都会有一个修改后的配置文件(CI的index.php文件),其中包含“应用程序”和“系统”文件夹的不同路径,这将导致一场重大冲突。
例如:dev1和dev2的web root和index.php文件分别位于'home / dev1 / www / myapp / front-end /'和'home / dev2 / www / myapp / front-end /'中.php将分别指向应用程序路径的'home / dev1 / www / myapp / back-end / application /'和'home / dev2 / www / myapp / back-end / application /',但主dev服务器的web根目录和index.php在'/ var / www'中,index.php指向应用程序路径的'/ data / myapp / application'。
如何解决此问题?有没有比我想到的路线更好的解决方案?
答案 0 :(得分:2)
使用私有开发分支,您可以将配置更改为第一次提交,以适合您的特定环境。现在
git checkout shared_branch
git merge -s ours your_branch
后续合并不应使用我们的策略,您的配置将是您的分支机构所需的配置以及中心配置所需的配置。
希望这有帮助
答案 1 :(得分:0)
感谢您的回复。我记得在Apache,CodeIgniter& amp; GIT和我不必使用默认配置。因此,为了解决这个问题,我只需将CI的系统文件夹移动到应用程序文件夹中,将应用程序文件夹重命名为'后端',创建一个名为'front-end'的文件夹并将index.php移动到那里,移动'后端'并且'前端'到'/ data / myapp',更新CI的index.php以指向相对的应用程序和系统文件夹(分别为'../back-end'和'../back-end/system') ,更新GIT主/中央存储库上的更新后挂钩以将代码发布到'/ data / myapp',在主开发服务器上更新Apache配置以使用'/ data / myapp / front-end'作为文档根目录(而不是默认的'/ var / www')并在Apache中创建每个开发人员的虚拟主机,使用'home / USERNAME / www / myapp / front-end /'作为他们的文档根目录(他们的工作本地副本)。开发人员可以轻松地测试他们的工作代码,他们的index.php文件不会搞砸主开发服务器的index.php文件,因为现在一切都是相对的和一起的。
我知道我可以做一个钩子来忽略index.php(因为它的内容几乎从不需要改变)在提交或推送时会更简单,但我需要更好地组织CI /的目录结构app和Apache无论如何。
再次感谢大家!
答案 2 :(得分:-1)
将index.php配置为使用〜/ some / path,并让开发人员将其存储库移动到其主文件夹,这样就可以将接缝移动到本地配置,而不是在项目中进行配置。
或者,使index.php运行一些脚本,通过检查一些环境变量或数据库值来找出路径。