LAMP(Linux,Apache,MySQL,PHP/Ruby/Python)堆栈是否适合企业使用?
需要说明的是,"企业"是指一家大型或大型公司,其安全性,稳健性,技能组合可用性,总体拥有成本(TCO),可扩展性和工具可用性是关键考虑因素.换句话说,一家寻求外部采用框架/架构的公司 - 无处不在的东西将被视为在这种环境中比异国情调/深奥的东西更"有效".
我见过Oracle,IBM和Sun在各种企业的LAMP堆栈上实现了系统的用例.我也看到过像yellowpages.com(Ruby on rails)和Facebook(php)等网站建立的例子.但是,这些例子都不是我正在寻找的.
我真的想找到一个例子,它是一家大型银行(即花旗集团),电信公司(即I&AT)和制造商(即Proctor and Gamble)的企业标准.为了清楚起见,我不是在寻找一个在有限意义上使用它的例子(比如摩根大通),但它是CRM,制造系统或人力资源管理等系统以及内部系统的核心平台.和外部网站.
到目前为止,我所看到的感觉是构建在LAMP堆栈上的应用程序执行速度较慢且灵活性较低.我听到的一些论点是:
Linux被认为不如Unix,Solaris或Windows服务器那么受支持.
Apache比BEA WebLogic或IIS等Web服务器更难配置和维护.
对于业余爱好者来说,MySQL是一个"尚未准备好黄金时间"的数据库,而不是SQL Server或Oracle的竞争对手(尽管PostgreSQL似乎因其更强大而闻名).
PHP/Ruby on rails针对CRUD(创建,读取,更新和删除操作)进行了优化.虽然这在构建CRUD密集型Web应用程序时是一个优势,但它们的执行速度都比Java/Java EE或C#(这两者都是常见的企业标准)慢.此外,许多应用程序和系统(如制造系统)具有许多非CRUD功能,使用PHP或Ruby甚至Python可能难以构建.
任何人都可以提供论据来支持或反驳LAMP堆栈适合企业的想法吗?
谢谢!
K A
我有一个Vagrant VM标准问题lucid32.box正在运行.在此设置LAMP的完整说明是什么?
我看过刀(厨师的一部分)并试图:
vagrant@lucid32:~$ knife cookbook site install apache2
但得到了
WARNING: No knife configuration file found
如何设置刀具配置文件以及我应该在其中包含哪些内容?
我一直在网上搜索很多答案,但是部分解决方案不能解释他们的起点/先决条件.
更新
我的目标是自己回答这个问题,因为其他人似乎并不想这样做.这是我目前的理解 - 我的目标是稍后用红色解决我的未知/问题.

操作系统:Ubuntu 17.10 
 
我安装了LAMPP和Laravel.当我尝试时,composer install我遇到了以下错误
  - Installation request for phar-io/manifest 1.0.1 -> satisfiable by phar-io/manifest[1.0.1].
    - phar-io/manifest 1.0.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  Problem 2
    - Installation request for phpunit/php-code-coverage 5.2.2 -> satisfiable by phpunit/php-code-coverage[5.2.2].
    - phpunit/php-code-coverage 5.2.2 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  Problem 3
    - Installation request for phpunit/phpunit 6.4.3 -> satisfiable by phpunit/phpunit[6.4.3].
    - phpunit/phpunit 6.4.3 requires ext-dom * …我正在显示当用户点击它们时在数据库中标记为已读的链接.我想根据数据库信息而不是用户的浏览器历史记录来设置单击和未单击链接的样式.到目前为止,当我使用:
 10 a:visited {
 11   color: #444;
 12 }
 13
 14 a:link {
 15   font-weight: bold;
 16   color:black;
 17 }
 18
 19 .read {
 20   color: #444!important;
 21 }
 22
 23 .unread {
 24   font-weight: bold!important;
 25   color:black!important;
 26 }
和
<tr class="even">
  <td><a class="read" href="example.com">blah</a></td>
</tr>
<tr class="odd">
  <td><a class="unread" href="example.org">foo</a></td>
</tr>
并且已经访问过一个链接,但是没有访问过这个页面(它在数据库中仍被标记为未读),我得到了奇怪的结果.例如,只有颜色可以使用,但重量不会,等等.
当冲突时,是否有可能让一种风格覆盖另一种风格?
谢谢!
编辑:更新代码澄清
 10 a:link,
 11 a:visited {
 12   font-weight: bold;
 13   color: black;
 14 }
 15
 16 a.read {
 17   color: #444;
 18   font-weight: …有人能告诉我Ubuntu上的Apache2配置文件的路径.谢谢!
我有几个应用程序,我希望使用rpm部署.我的应用程序部署中的某些文件会覆盖其他已部署软件包中的文件.简单地在部署包中包含新文件将导致rpm冲突.
我正在寻找使用rpm来更新/替换已安装文件的正确方法.
我已经提出了一些解决方案,但似乎没有什么是正确的.
这似乎是一项相对较小的奖励的大量工作,即使它感觉不像一个黑客比一些其他可能的解决方案.
这可行,但意味着乱丢系统的多个副本.此外,它还意味着每个文件的rpm构建规范中的额外维护.
这与复制技术类似,但文件甚至不会存在于rpm中.这可能就像一个不错的中央配置权限.
这也类似于复制技术,但杂乱程度较低.这里的问题是一些文件表现不如符号链接.
我想知道在LAMP堆栈上构建典型站点时如何优化它以获得最佳加载时间.我正在描绘一个典型的数据库驱动的网站.
这是一个高级别的外观,可能会引起问题,让我将其分解为堆栈的每一层.
L - 在系统级别,(设置和文件系统)可以提高速度吗?我能想到的一件事是图像尺寸,这里的压缩可以帮助优化任何东西吗?
答 - Web服务器中必须有大量与站点速度相关的设置.不是我的Forte.可能很大程度上取决于并发运行的站点数量.
M - MySQL在数据库驱动的站点中,DB性能是关键.是否有更好的规范化方法,即使用链接表?Web开发人员通常只生成类似1NF的简单单片表,这可能会破坏性能.
P - 除了缓存等性能提升设置之外,程序员可以做些什么来影响高级别的性能?我真的很想知道MVC设计方法是否比快速和肮脏更能达到性能.其他简单的提示比像饼干更快的会话会很有趣.
显然,你必须深入了解细节并找出哪些代码会降低你的速度.此外,我意识到许多站点具有许多不同的性能特征,但让我们假设一个典型的站点有更多的读取然后写入.
我只是想知道我们是否可以编译一堆最佳实践并完全希望人们链接其他问题,以便我们可以有效地处理清单.
我的目标是看看即使除了性能中的常见问题之外,我们还可以看到一些你可能没想到的奇怪的事情,以及最佳实践摘要.
所以我的问题是,如果你是从头开始,你将如何确保你的LAMP网站快速?
如果您的存储需求很小,SQL数据库就会过度.当我年轻和愚蠢时,我使用了一个文本文件,并在我需要访问它时flock()编辑它.这不会扩展,但我仍然觉得在Web 2.0中完全忽略了非数据库解决方案.
有没有人不使用SQL数据库进行存储?有哪些替代方案?
作为一名Windows开发人员,我目前正在使用LAMP开发自己的项目.我理解我需要知道的PHP和MySQL,但是Linux看起来很庞大,并且不清楚从哪里开始,到目前为止什么是足够的.
我的目标是掌握一般概念,能够将项目部署到托管服务提供商,并能够监控网站的性能,以发现问题,加载问题等.
我知道,最好的解决方案是获得Linux管理员这样做,但在我能做到之前,我需要自己做.
我有一些批处理过程在Linux/PHP网站的幕后运行.它们的数量和复杂性开始增长,因此我想对它们进行少量处理.
我的源代码树有一堆cpp文件和脚本,按开发组织但不考虑部署.编译完所有可执行文件后,我需要在一组机器上放置各种脚本和二进制文件.不同的计算机需要为其批处理过程使用不同的可执行文件,脚本和配置文件.我也有一些我写的属于每台机器的工具.目前,此部署过程是手动且容易出错的.
我猜我最终会得到一个在源代码树根目录下运行的脚本,并构建一个包含任何机器所需的所有内容的小树.然后,我将把它同步到适当的机器上.但我很好奇其他人是如何处理这类问题的.有任何想法吗?