Bomi
分类: 系统运维
2012-02-04 01:03:21
在遥远的未来,您的孙子可能会问:“您知道 LAMP 是什么意思吗?”
您极有可能会回答:“它是一种开源的软件栈。它代表 Linux、Apache、MySQL 和 PHP(或者 Perl 和 Python)。”
这时,您的孙子会说:“您真的老了!”
什么是 LAMP?
事实上,每天都会有新的组件成为 LAMP 栈的选择,从而导致该缩略语的滥用。结果,除了 PHP、MySQL 和 Linux之外,开发人员在使用 Ruby、PostgreSQL 和 OpenSolaris 时仍然说它们是 LAMP。栈中的各个元素 —操作系统、Web 服务器、数据库服务器和语言 — 都拥有许多开源选择。
当然,您可以根据自己的意愿替换栈中的任何兼容软件 — 许多开发人员都将在 Windows 系统中开发的产品应用于 Linux 服务器。选择的权力已经逐渐掌握在开发人员手中。
但是,让我们将注意转换到开源软件和它们的备选方案 — 对于在密室中埋头开发下一代 Web 产品的开发人员可用的选择。下表列出了其中的一些备选方案。
操作系统
Web/App
服务器
数据库服务器
语言
(MacOS X GUI 层
并未开源)
/JavaDB
/
/
/
… 等等
注意,上表并没有将本机软件和 Java 技术分开,这是有意的。随着用于 JVM 的动态脚本语言的引入,本机开发和 JVM 服务器开发之间的界限开始变得模糊。
如果您希望在 Java 环境中开发,并整合 Java 库,您可以使用 Java Native Interface (JNI) 在本机脚本环境中执行动态语言。对于 Ruby,您可以使用基于 JNI 的 gem (RJB)。一种较好的方法是在 JVM 上运行动态语言 JVM — 现在,除 Java 本身之外,可选择的语言包括 Jython、JRuby、Groovy 和 Scala 等 30 余种语言。
其中一些语言是为解决特定的问题域而开发的。如果您的编程问题非常专业或者只是感到好奇,您可以使用 中定义的 API 来编写自己的语言。
如果您需要运行 Java 应用程序,则应该使用兼容 Java 的服务器,如 GlassFish — 它是一个很好的选择,因为可以 在相同的环境中开发和部署 Web 应用程序。
无论使用哪些栈组件,您都需要它们能够相互兼容,这样才能专心解决业务问题,而不必为在配置文件中设置属性烦神。事实上,兼容性将决定原始Linux-Apache-MySQL-PHP 组合的普及程度。虽然这些组件没有专门针对兼容性方面而设计,但开放标准使这些组件能在 Web开发环境中良好契合。
MySQL:LAMP 中的 M
虽然备选方案具备开源和专用特性,但 MySQL 数据库服务器维持了自己在企业级开源数据库市场的 领导地位 。其适用性和易用性主要得益于它的架构和可扩展性,因而适用于开发的部署。MySQL 数据库服务器包含在许多面向 Web 开发人员的操作系统发行版中。
在 AMP 中加入 S
一篇文章无法全面剖析 Web 开发栈的无数组合。本文的剩余部分将重点讨论 SAMP 选择 —由 Solaris(或 OpenSolaris)操作系统和 MySQL 数据库服务器组成的栈。由于缩略语 LAMP 的概念已经根深蒂固,因此 SAMP 有时会被定义为“Solaris 上的 LAMP 栈”。
没有一款 BSD UNIX 能像 Linux 那样在开发人员中倍受欢迎。但是,UNIX System V Release 4 以 Solaris、AIX 和 HP-UX 的形式出现在企业安装中已有多年。Sun 于 2005 年 宣布,Solaris 是惟一开源发行的基于 SVR4 的操作系统。在操作系统的发展历程中,Solaris 的开源举措是一次重要事件。
您可以免费 下载 Solaris 和 OpenSolaris。Solaris 适用于有经验的用户启动任务关键型长期部署工作,而 OpenSolaris 适用于需要最新特性的开发人员。
OpenSolaris 系列的优势在于它的可扩展性、可靠性、性能和可观察性。OpenSolaris OS 在 Solaris 10代码库的基础上构建,它包含最新 Solaris update 中没有的特性。通过 OpenSolaris 和 Solaris发布模型,这些特性能及时添加到 Solaris 更新和重要发行版中。
OpenSolaris 提供了与 Linux 系列类似的操作环境。与 Solaris 10 共有的其他特性还包括:
组件
描述/内容
NetBeans IDE
开源集成开发环境
PHP
PHP 服务器
PHP 服务器文档
PHP 服务器手册页
针对 PostgreSQL 的 PHP5 模块
针对 MySQL 的 PHP5 模块
Python
Python 解释器、库和实用工具
Twisted:针对 Internet 应用程序的一种基于事件的框架
Apache
Apache Web 服务器
用于 Apache Web 服务器的 Tomcat 连接器插件
Apache Web 服务器的 Mod 安全性
Apache Web 服务器文档
针对 Apache Web 服务空对空的 PHP5 模块
Apache Web 服务器的 FastCGI 插件
Apache Web 服务器的 Dtrace 插件
Tomcat
应用程序
MySQL
MySQL 数据库管理系统(用户组件)
MySQL 数据库管理系统(库)
Squid
Squid Web 代理缓存
内存缓存
分布式内存缓存系统
Subversion
版本控制系统
CVS
版本控制系统
WebStack 工具和 UI
添加桌面特性来操作 Solaris、Apache、MySQL 和 PHP 栈
OpenSolaris 存储库提供了一个类似的 ruby-dev 包供 Ruby 开发人员使用。
Cool Stack:SAMP 的捷径
作为其开源努力的一部分,Sun 收集并优化了一组在 Solaris 操作系统中最为常用的开源应用程序。该集合称作。
针对 Solaris 的 Cool Stack 包括以下实用工具: