使用Bitnami与本地服务器堆栈相比,有什么不利之处吗?

15

我了解使用BitNami堆栈进行LAMP开发的优点,现在想知道与手动分别安装PHP、MySQL和Apache相比,使用BitNami是否存在任何缺点。我使用Mac OS,但我也想知道这适用于Mac和Windows。你有什么想法吗?

6个回答

16

我是BitNami的一名开发人员。使用本地堆栈还是BitNami堆栈取决于您要做什么。单独安装每个项目应该与运行我们的安装程序完全相同,而我们将安装程序组合在一起的整个目的是为了让您不必这样做:)就Mac而言,BitNami的一个优点是您可以拥有更多更新的组件和多个安装。一个缺点/区别是应用程序和路径将不同于典型的那些,因此如果您使用第三方教程或文档,则可能无法立即正常工作。


如果我只需要担心从教程等中确保路径名称正确,那么BitNami似乎是一个不错的选择。您能否更详细地阐述一下Mac上的最新组件和多个安装方面?谢谢! - webworm
苹果公司倾向于发运较旧版本的语言运行时,如Ruby、Python等。关于多个安装,我的意思是由于堆栈是可重定位的,并且您可以选择安装路径,因此您可以拥有多个并排安装(例如每个项目一个)。 - Daniel Lopez
3
实际上并不完全相同。在Bitnami堆栈上,我们无法在不重建整个设置的情况下升级PHP。这是使用Bitnami方法的一个巨大障碍。从安全角度来看,这显然是一个弱点。 - cedbeu

15

与本地LEMP/LAMP堆栈相比,Bitnami有3个常见的缺点:

  1. 文件路径。 因为Bitnami是一种Web堆栈的容器方法,它会将所有东西安装在Ubuntu(或任何Linux发行版)的/opt/bitnami目录下。因此,许多习惯于使用nano或vim编辑器(通过Bash shell)自定义其堆栈的开发人员很快就会发现,您首先必须弄清楚堆栈模块的所有不同配置文件的位置等。即使您找到了这些文件,您可能找到的大多数在线教程和文档也不适用于您的堆栈。

  2. 锁定。 这可以被视为优点或缺点,具体取决于您的观点(和情况)。使用容器化方法的整个重点是拥有更多对堆栈环境的控制,这可以提高兼容性、可预测性、安全性等等。但是正如@team-life 提到的那样,在尝试使用“标准”的Bash shell命令甚至是MySQL CLI时,例如在尝试分析或复制您的堆栈时,这可能很快变得令人沮丧。简而言之,在安装了Bitnami的服务器上登录shell实际上并没有登录到实际的shell :)

  3. 升级。 归根结底,Bitnami(以及其他容器,如Docker)正在为您的堆栈添加另一层,并因此增加了更多的臃肿。对于一些用户来说,这种“膨胀”是可以证明的,并且是可取的(例如,需要全面统一性的非常大的公司)。但许多开发人员通过使用Bitnami和容器发现升级堆栈可能相当棘手。尽管在环境“稳定性”方面有所谓的优势,但事实证明,升级堆栈实际上可能会引入相当多的不稳定性不可预测性,通常会抵消其益处。正如@domi 提到的那样,所有升级都通过Bitnami运行(而不是Ubuntu镜像等),这意味着您受到它们版本和发布时间表的限制;您还经常需要完全重新安装堆栈...

最终,容器是最近在所谓的“企业”和“公司”内部团队中非常流行的趋势之一,但这可能不是小型机构或独立开发人员拥抱的最佳功能之一。

这就是为什么像SlickStack(我的项目)这样的本地 LEMP 堆栈正在获得动力。

这个Reddit 主题讨论也有一些其他 AWS 特定的评论。


5

BitNami使用的路径与行业标准路径非常不同,因此如果您试图登录服务器执行某些任务,则需要花费很多时间来理解他们自定义的文件夹结构。这是一个很大的缺点。当您登录Unix服务器时,您知道文件和路径在哪里,可能只有一两个选项,这是标准的。而 BitNami 使用了完全不同的路径。这会导致混乱。


3
我是Bitnami工程师。我们的目录结构对于我们目录中的每个应用程序都是相同的。所有应用程序和所需组件的文件都在您使用我们的安装程序设置的安装目录内(或者如果您使用云实例,则为/opt/bitnami)。您可以在那里找到不同的文件夹:apps具有应用程序文件,apache2具有Apache文件,mysql具有该数据库的文件等。我们在文档中有一份指南,解释了这一点 https://docs.bitnami.com/installer/faq/linux-faq/get-started/understand-directory-structure/ - Jota Martos

4

Bitnami - 提供易于使用的验证组件 - 已知工作良好的配置。

缺点 - 补丁和更新。 与本地安装不同,您无法通过更新软件包来进行安全更新。任何公告必须由Bitnami团队解决,他们可能/将推出更新以解决问题。 Bitnami更新是完整的堆栈升级,这意味着您不能仅升级单个组件(例如php) - 您需要升级整个Bitnami堆栈,并且通常推荐的方法是备份应用程序数据库,安装具有最新更新的并行Bitnami堆栈,然后恢复或迁移到新安装。

有人会告诉您可以将补丁塞入Bitnami堆栈中,但这绝不是推荐做法,会使您离开堆栈,并很可能会导致下游问题。


3
我是一位快乐的Bitnami堆栈用户。这是一个很棒的堆栈,我可以描述许多优点。
使用Bitnami堆栈的缺点是更新周期。例如,在基于Debian/Ubuntu的系统上,您不能使用标准的apt-get update/upgrade。
这意味着一些安全更新可能无法像标准的cron(自动定期)更新机制那样快速到达您的系统。
要升级系统,您需要创建备份,安装新的堆栈,然后将备份导入新的堆栈。这可能不是一个理想的过程。
有些人将其归类为非生产环境。

2
Bitnami显然无法使用其mysql命令行中的某些命令。我发现这非常令人沮丧。以下是我发现的一些情况:
  1. 它将您带入其自己的bash shell bash-4.2#
  2. mysql> SHOW MASTER STATUS返回->(无)似乎不起作用
  3. rcmysql start或stop无法从mysql>工作,您必须退出您所在的shell并运行ctlscript.sh,这很麻烦。
  4. 只是为了进入命令行,您必须运行./use_lampstack
  5. 我猜他们给我们提供了一组非常简化的mysql命令,因为这样他们需要支持的内容就会更少,人们也会更少犯错。

所以,对我来说,这是因为我正在尝试设置复制。我正在遵循一个“常规”安装的指南。由于大多数他建议使用的命令都无法从bitnami mysql>命令行中工作,所以很难遵循。因此,虽然我真的很喜欢Bitnami的统一性和模块化性质,但在尝试设置复制时,我遇到了一些问题。


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