理想的多开发者LAMP堆栈?

9
我希望构建一个“理想”的灯具开发堆栈。
- 双服务器(虚拟化,ESX)
- 一个服务器上运行Apache / PHP,另一个服务器上运行数据库(MySQL,PgSQL等)。
- 用户(开发人员)可管理的小型环境或实例。
- 每个开发人员实例共享顶级配置(可用模块和默认配置等)。
- 开发人员应该能够控制每个项目的Apache和PHP版本。
- 开发人员可以更改一些次要设置,例如在传统代码中启用magicquotes。
- 每个项目将在其代码中确定其数据库提供程序。
这个想法是它是一个可管理的服务器,我可以控制,并提供全局配置的东西,如APC,Memcached,XDebug等。然后通过进入每个项目的子集,我可以允许我的用户快速控制他们的各种项目环境。
本质上,我提议开发人员在自己的机器上运行自己的堆栈的典型系统,但集中式的。通过这种方式,我希望避免诸如跨操作系统代码问题,数据库不一致,稍微不同的安装产生错误等问题。
我很乐意使用源代码管理此项任务,但如果可能的话,最好使用某种软件包管理来管理其中的大部分内容。我们通常使用CentOS,因此使用yum?
有人曾经构建过类似的东西吗?是否有类似于我所描述的东西的成品?是否有任何有用的指南可以帮助我构建这样的东西?

听起来像是一个超级用户的问题。 - S.Lott
我没有解决方案,但听起来你应该可以使用.htaccess文件完成大部分工作。httpd.conf应该能够限制可以被覆盖的内容,然后开发人员可以在htaccess文件中扩展环境。 - Brant Messenger
Brant,在这种情况下你不能依赖htaccess文件,因为每个项目中运行的应用程序都有自己的htaccess文件,篡改它们是不合适的。 - jhogendorn
这几乎听起来像是每个开发者都需要虚拟容器。 - Brant Messenger
2个回答

3

好的,我们在之前的工作中运行开发LAMP设置的方式如下。一个单独的服务器同时运行MySQL和Apache。每个开发人员在服务器上分配了一个IP地址(该机器在同一接口上运行多个IP,所有IP都在同一子网上),因此每个开发人员可以至少拥有一个基于IP的虚拟主机和尽可能多的基于名称的虚拟主机(我们的网站使用SSL,因此我们需要单独的IP,没有SSL,您可以通过一个单独的IP和基于名称的虚拟主机来解决)。我们有本地DNS服务器以以下方式为每个开发人员提供通配符A记录:*.john.dev.company IN A 10.1.1.123,其中10.1.1.123是分配给John的IP地址。这样,John可以定义尽可能多的基于名称的虚拟主机,并且只要它们都以john.dev.company结尾(例如project1.john.dev.company),它们就会被正确解析。每个开发人员都有自己的apache配置文件,其中包含他们的虚拟主机,并且我们使用Include指令将所有这些文件拉入主Apache配置中。权限被设置为这些配置文件可以由各自的开发人员进行编辑,并且每个开发人员在其主目录中都有其配置的软链接。此外,每个开发人员都被允许使用sudo重新启动Apache。这种设置的缺点是,偶尔会有特定的开发人员通过搞砸他们的配置文件而使整个服务器崩溃。由于每个人都在单个项目上工作,因此我们使用了共同的数据库,但是设置多个单独的数据库不应该很困难。


0

我对这个问题的看法是,我认为它并不涵盖您所有的要求,但它非常接近:

  • 使用 LAMP 堆栈的 CentOS 服务器(yum 安装 apache2 mysql php 等)- 或者有一个运行 Apache 服务器的主机和一个运行 mysqld 的主机
  • 对于 n 个开发人员,有 n 个文件夹,每个文件夹都有一个虚拟主机 www.developer-n.com,位于运行 Apache 服务器的主机上
  • 每个开发人员通过 CIFS 在本地机器的 /etc/fstab 中挂载其服务器文件夹(例如 //192.168.0.1/home/developer-n/www),并在本地机器上编辑文件,但在(唯一的)服务器上运行它们
  • 每个开发人员的迷你环境通过 .htaccess 进行调整

你谈论的是当前已实现的内容,所以并不是答案 :) 另外我已经确定通过 .htaccess 调整配置是不合适的。 - jhogendorn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接