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