Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1100364
  • 博文数量: 286
  • 博客积分: 3124
  • 博客等级: 中校
  • 技术积分: 5186
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-24 23:42
个人简介

Bomi

文章存档

2015年(1)

2013年(1)

2012年(281)

2008年(3)

分类: 系统运维

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 层
            并未开源





GlassFish





















Cheyenne






/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 共有的其他特性还包括:

  • 易于使用的图形安装体验
  • 128 位 ZFS 默认根文件系统提供的数据完整性和易用性
  • Solaris Containers 虚拟化技术
  • 有预见性地自行恢复,可自动诊断、隔离和恢复各种硬件和应用程序故障
  • DTrace  动态跟踪工具可为已部署的应用程序提供程序的可观察性和性能调优
  • 优化多核 x86 和 SPARC 系统
OpenSolaris 和 Solaris  数据表提供了可用特性的详细信息。
当然,使用 SAMP 栈进行开发并不意味着应用程序的目标是在 Linux 等不同操作系统中运行的服务器。最后,您可以 在 VirtualBox 中安装 OpenSolaris ,并将它作为客户操作系统在 x86  机器中运行。这样,您便可以尽情地在 OpenSolaris 中开发应用程序,而完全不用受主机操作系统所困扰。
OpenSolaris 上的 AMP
OpenSolaris 用户可以下载 Web 开发所需的工具,它位于 pkg.opensolaris.org 存储库中。amp-dev 包 是该存储库中所有 AMP 包的超集。
下表给出了 amp-dev 包中各组件的概述。

            组件
            描述/内容

            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 包括以下实用工具:

  • 包含核心库的运行时。
  • 绑定版本的 Apache HTTP 服务器、PHP 和 MySQL,通过预先配置已能相互协作。该版本的 MySQL 为 32 位,并提供对 PHP  的客户端支持。
  • 独立的 64 位版本的 MySQL,提供给需要在大型数据库上提供较大缓存和较佳性能的用户使用。
  • Perl 版本 5,包括流行应用程序使用的一些 Perl 扩展。
  • 各种 PHP 扩展需要的一组库。
  • Memcached:分布式对象缓存系统。
  • PythonRuby、Rubygems 和 Rails。
  • Squid Web 代理缓存。
  • Apache Tomcat 服务器: 分发的相同版本。
  • lighttpd:轻量级的 HTTP 服务器。


NetBeans IDE

由于市场投放时间对于 Web 开发尤为重要,因此选择的工具和集成开发环境(IDE)的重要性可以与应用程序的实现技术相提并论。 和 是两款免费、开源、跨平台且具备最大特性集的  IDE。但 Aptana 等其他 IDE 也拥有自己的支持者。此外,还有一些人喜欢基于文本的编辑器,如 vim 和 TextMate — 尤其是对于 Ruby  等动态类型语言。
NetBeans IDE 是 SAMP 开发的一个很好的选择,除了可以在 Solaris OS 上运行之外,它还支持 Windows、Linux 和  Mac OS X。它是一种模块化的 IDE,并采用一种 架构。它支持  、JavaScript、、各种形式的 Java、JavaFX 和其他一些语言及框架。它认可 ,这是一种运行 DTrace 脚本的图形用户界面。
它既是一个开源 IDE,又是一个应用程序平台,可作为构建任何应用程序的通用框架。netbeans.org 网站列出了它的许多 。
NetBeans IDE 6.1 随带了 GlassFish 和 MySQL。只需选择您的开发语言便可获得完整的 SAMP 栈。
Linux 和 Sun 支持的开发人员工具
如果您选择在 Linux OS 中进行开发,则仍然可以使用各种 Sun 支持的开源工具。事实上,这些工具正逐渐开始进入 Linux 发行版,如 。
针对 Linux 用户的关键开源产品包括:
  • NetBeans IDE – 提供与 Java 技术、C/C++、Ruby/JRuby、JavaScript. 和 PHP  相关的工具。
  • GlassFish 应用服务器 – 实现了 Java EE 5 平台中的最新特性。
  • MySQL 数据库服务器 – 世界上最流行的企业级开源关系数据库系统。
  • JavaDB 数据库服务器 – 基于 Apache Derby 的 Java 关系数据库管理系统。
  • OpenJDK Java 开发包 – 完全基于开源内核的 Java 开发包。
  • VirtualBox 虚拟化软件 – 可安装在流行的 x86  操作系统上的软件包,充当额外客户操作系统的管理程序,分别运行在自己的虚拟环境中。
  • OpenOffice.org Office Productivity 软件 – 国际领先的开源办公套件,提供了与 Microsoft  Office 的高度兼容性。
  • Sun Studio – 提供现代 C、C++ 和 Fortran  编译器的编程工具,利用了多核硬件的优势。编译器产生自动并行化的代码,内置工具通过 Sun HPC ClusterTools 提供调试、线程分析、性能分析和  MPI 支持。


结束语

如今的开发人员可以在 Web 开发软件栈(常称作 LAMP)中加入许多开源选择。Solaris/OpenSolaris OS、CoolStack 工具(包括 MySQL)和 NetBeans IDE 组合为您提供了一个高效的开发环境,并且可以方便地扩展到大型部署。
其他操作系统(Linux OS)的用户还可以在自己的开发栈中使用 Sun 支持的开源工具。
下载
  • – 针对 Solaris 优化过的常用开源应用程序
  • – 免费、开源的 Solaris OS
  • Sun  Studio Express – 高性能,优化了 C、C++、Fortran 编译器和 OpenSolaris 工具
  • GlassFish – 基于 Java EE 5 技术的开源应用服务器
  • – 免费、开源的 IDE
  • – 免费的 x86 虚拟化软件包
  • – 免费的多平台、多语言办公套件
阅读(2530) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~