为什么不使用WAMP堆栈?


28

这是关于使用* AMPP堆栈的规范问题

我最近与一些经验丰富的人进行了交谈,他们建议我不要使用WAMP堆栈,而应分别安装apache,mysql和php。

不过,我不明白他们为什么提出这个建议,所以有人可以告诉我吗?

WAMP有什么特别的缺点,还是单独安装所有WAMP的特别优点?

由于WAMP堆栈本身由apache,mysql和php组成,那么使用WAMP堆栈和分别安装它们之间有什么区别?


3
WIMP堆栈呢?(Windows,IIS,MSSQL Server,ASP.net)我更喜欢首字母缩写。
HopelessN00b

@ HopelessN00b,已采取WIMP。它是Commodore 64机器的OS扩展(大约在Windows 2时代),代表“ Windows,图标,鼠标和指针”。
John Gardeniers 2012年

@John Gardeniers WIMP在该阶段已被用作我们现在都使用的UI的“ Windows图标鼠标和下拉菜单”样式的首字母缩写。
Euan M

Answers:


37

由于WAMP堆栈本身由apache,mysql和php组成,那么使用WAMP堆栈和分别安装它们之间有什么区别?

尽管有三个最令人困扰的差异,但它们之间有很多差异:

  1. 不安全的配置
  2. 升级的困难和滞后
  3. 非标准配置/二进制位置

扩展#1:WAMP,MAMP,LAMPP,XAMPP等被设计为一键式堆栈安装程序,使开发人员更容易地快速工作并以最小的阻力进行安装。这样,许多配置值有意地处于非常不安全的状态。这对于开发工作是可以的,但是在生产中却非常愚蠢。

然后,对于第二名,操作系统供应商容易通过最新的功能更新和安全补丁来使LAMP堆栈升级。当他们的软件包发布到其官方仓库时,它们已经过大量测试,并且破坏系统中任何内容的几率很小。在绝大多数情况下,您都可以使用单个命令来升级所有内容。

最后,#3:​​一键式安装程序将其文件放置在非常不标准的位置。这样,当您(或其他任何人)对问题进行故障排除时,您将不得不在整个文件系统中搜索例如php.ini文件。当从发行版的软件包回购中安装LAMP堆栈时,所有内容都将放置在预期的已知位置。


1
我觉得我们整个星期一直在回答相同的问题。
MDMarra 2012年

2
警告:我写这篇文章的前提是您正在Linux上运行,但显然不是。在Windows上,许多相同的观点仍然成立。不过,我应该提出,您确实应该在Linux上运行。您将获得更加愉快的体验。
EEAA 2012年

@MDMarra Hah,直到现在我都没有注意到。我想我需要回头看看我们的历史。:)
EEAA 2012年

21

首先,apache,php和MySQL都是* nix应用程序移植到Windows。通常最好在生产环境中的本机平台上运行工具。

其次,预先配置的* AMP软件包通常具有非常脆弱的配置。因此,大多数软件包附带一个自述文件,指出它们仅供开发人员使用,而不用于生产。

如果您真的想在模拟生产的环境中进行开发,则将使用与生产环境类似的配置,而WAMP或LAMP软件包则无法提供这种配置。


6

如果问题是-使用Windows作为我的平台,为什么有人会告诉我分别安装Apache,PHP和MySQL,而不是作为WAMP发行版的一部分...

主要原因是某些人对使用FTP服务器,邮件服务器,JSP服务器,DNS服务器附带的“包括厨房水槽在内的所有东西”类型的WAMP发行版产生了负面的体验,但是它们具有可升级性,安全性等问题。这通常会使事情变得一团糟。

最终,这些人宁愿以自己的方式安装和配置Apache,PHP和MySQL。还有一些人可能认为您将自己获得更多的经验。

但是,并非所有WAMP都是这样,并且有些WAVE框架以适当的方式处理安全性,可升级性和配置。

您可以测试大约十二个WAMP,以查看它们如何相互堆叠。我总是建议尝试- WampServerUniformServerWAMP,开发专业,并XAMPP来看看是否有一个适合您的需求,如果没有,要么建立自己的自定义WAMP安装/架构,或用LAMP环境去。


3
您的观点并没有错,但是我认为最安全,最高效的代码是您永远不必运行的代码,而最灵活的框架根本就是没有框架,因此您不必担心关于违反其他人的规则并防止其安全性,可升级性或配置假设真实存在并破坏框架的问题。它确实取决于部署人员的要求和技能-如果它是面向Internet的系统,那么框架就不能替代您自己了解如何正确配置所有组件。
罗伯·摩尔

3
我会进一步说,如果一个人需要使用任何 WAMP样式系统,因为他们没有使用组件的经验,技能和信心来进行操作,那么该人不应将其放到Internet上。WAMP的任何形式,都适合Intranet,但不适用于Internet。
John Gardeniers 2012年

3

直接来自XAMPP的答案。(即使不是直接的xampp问题,我也分享,因为它被列为AMPP堆栈的规范问题)

XAMPP生产准备就绪了吗?

XAMPP并非用于生产用途,而仅用于开发环境。XAMPP的配置方式应尽可能开放,以允许开发人员执行他/她想要的任何操作。对于开发环境来说,这很好,但是在生产环境中可能是致命的。

这是XAMPP中缺少的安全性的列表:

    The MySQL administrator (root) has no password.
    The MySQL daemon is accessible via network.
    ProFTPD uses the password "lampp" for user "daemon".
    PhpMyAdmin is accessible via network.
    The XAMPP demopage is accessible via network.
    The default users of Mercury and FileZilla are known.

所有这些点都可能带来巨大的安全风险。特别是如果XAMPP可通过网络和LAN外部的人员访问。它还可以帮助使用防火墙或(NAT)路由器。如果是路由器或防火墙,通常无法通过网络访问您的PC。您有责任解决这些问题。作为一个小帮助,这里有“ XAMPP安全控制台”。

在线发布任何内容之前,请确保XAMPP安全。防火墙或外部路由器仅足以满足较低的安全性要求。为了稍微提高安全性,您可以运行“ XAMPP安全控制台”并分配密码。

如果要从Internet访问XAMPP,则应转到以下URI,它可以解决一些问题:

 http://localhost/security/

使用安全控制台,您可以为MySQL用户“ root”和phpMyAdmin设置密码。您还可以为XAMPP演示页启用身份验证。

此基于Web的工具不能解决任何其他安全问题!特别是FileZilla FTP服务器和Mercury邮件服务器,您必须确保自己的安全。


-3

一些不错的答案,但不要忘记默认安装中的任何一个都是非常安全的,因为它们打算在尽可能广泛的情况下使用。

认真地说,如果您认为在Linux上默认安装Apache是​​安全的,请再次猜测。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.