我已经阅读了使用 BitNami 堆栈进行 LAMP 开发的优点,现在我想知道使用 BitNami 与单独手动安装 PHP、MySQL 和 Apache 相比是否有任何缺点。我使用 Mac OS,但我会对它如何适用于 Mac 和 Windows 感兴趣。有什么想法吗?
6 回答
我是 BitNami 的开发者之一。是使用本机堆栈还是 BitNami 堆栈取决于您要执行的操作。单独安装单个项目应该与运行我们的安装程序完全相同,我们将安装程序放在一起的整个目的是让您不必:) 对于 Mac,BitNami 的优点之一是您可以拥有更多最新的组件和多个安装。一个缺点/不同之处在于应用程序和路径将与典型的不同,因此如果您使用第三方教程或文档,它可能无法立即工作
Bitnami 与原生 LEMP/LAMP 堆栈相比有 3 个常见缺点:
文件路径。因为 Bitnami 是一种 Web 堆栈的容器方法,所以它将所有内容安装在 Ubuntu(或任何 Linux 发行版)的
/opt/bitnami
目录下。因此,许多习惯于使用 nano 或 vim 编辑器(通过 Bash shell)自定义堆栈的开发人员很快发现,您首先必须弄清楚堆栈模块的所有不同配置文件所在的位置等。即使在您弄清楚了那些出,您可能会找到的大多数在线教程和文档都不适用于您的堆栈。锁定。根据您的观点(和情况),这可以被视为优势或劣势。使用容器化方法的全部意义在于更好地控制堆栈环境,这可以提高兼容性、可预测性、安全性等。然而,正如@team-life提到的,当您尝试使用“标准”Bash shell 命令甚至 MySQL CLI 时,例如在尝试分析或复制您的堆栈等时,这会很快变得令人沮丧。简单地说,登录安装了 Bitnami 的服务器上的 shell 实际上并没有登录到实际的 shell :)
升级。归根结底,Bitnami(和其他容器,如 Docker)正在向您的堆栈添加另一个“层”,因此更加臃肿。对于某些用户来说,这种“膨胀”是合理的,而且更可取(例如,需要全面统一的非常大的公司)。但是许多开发人员使用 Bitnami 和容器发现升级你的堆栈可能相当麻烦。对于环境“稳定性”方面的所有所谓优势,事实证明,升级堆栈实际上会引入相当多的不稳定性和不可预测性,通常会抵消这些好处。正如@domi提到的,所有升级都通过 Bitnami(而不是 Ubuntu 镜像等)运行,这意味着您必须遵守他们的版本和发布时间表;您还经常需要再次完全重新安装堆栈...
最终,容器是最近的趋势,在所谓的“企业”和“公司”内部团队中变得非常流行,但它可能不是小型机构或独立开发人员接受的最佳功能之一.
这就是为什么像SlickStack(我的项目)这样的原生 LEMP 堆栈正在获得动力。
这个Reddit 线程还有一些其他特定于 AWS 的评论。
BitNami 使用的路径与行业标准路径非常不同,因此如果您尝试登录服务器执行某些任务,您将花费大量时间来了解其定制的文件夹结构。这是一个很大的缺点。当您登录到 unix 服务器时,您知道文件和路径在哪里,也许您有一个或两个标准选项。BitNami 使用完全不同的一种。混乱随之而来。
我是一个快乐的 bitnami 堆栈用户。这是一个很棒的堆栈。我可以描述许多优点。
使用 bitnami 堆栈的缺点是更新周期。例如在基于 Debian/Ubuntu 的系统上,您不能使用标准的 apt-get update/upgrade。
这意味着某些安全更新可能不会像标准 cron(自动定期)更新机制那样快速到达您的系统。
要升级系统,您需要创建备份、安装新堆栈,然后将备份导入新堆栈。这可能不是一个理想的程序。
有些人将其归类为非生产环境。
Bitnami - 易于使用,经过验证的组件 - 已知工作良好的配置。
缺点 - 补丁和更新。您不能像本地安装那样更新软件包以确保安全。任何公告都必须由 bitnami 团队解决,他们可能/将推出更新以解决问题。bitnami 更新是全栈升级,这意味着您不能只升级单个组件(例如 php) - 您需要升级整个 bitnami 堆栈,通常推荐的方法是备份您的应用程序数据库,安装并行 bitnami 堆栈具有最新更新,然后还原或迁移到新安装。
有些人会告诉您,您可以将补丁塞入 bitnami 堆栈,但根本不推荐这样做,这会导致您脱离堆栈,并且很可能会导致您出现下游问题。
Bitnami 显然无法从他们的 mysql 命令行使用某些命令。我觉得这非常令人沮丧。这是我发现的一些东西。
- 它让你进入它自己的 bash shell bash-4.2#
- mysql>SHOW MASTER STATUS 返回 -> (nothing) 似乎不起作用
- rcmysql start 或 stop 在 mysql> 中不起作用> 你必须从你所在的位置退出并运行 ctlscript.sh ,这很痛苦。
- 只是要进入命令行,您必须运行 ./use_lampstack
- 我猜他们给了我们一个非常配对的 mysql 命令组,因为他们支持的命令会更少,而人们支持的命令也会更少。
所以这对我来说是因为我正在尝试设置复制。我按照“常规”安装的人的指示进行操作。很难理解,因为他建议的大多数命令在 bitnami mysql> 命令行中都不起作用。因此,虽然我真的很喜欢 Bitnami 的统一性和它的模块化特性,但我在尝试设置复制时遇到了障碍。