首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

利用开源软件开发 Web 应用程序(1)

利用开源软件开发 Web 应用程序(1)

开始之前首先,了解本教程的主要内容以及如何从中最大程度地受益。
关于本教程本教程介绍了 Linux® 上可用的各种编程工具。此外,还展示了在此平台上进行开发是何等快捷和简单,并给出了开源工具的最新创新。
目标了解如何在 Linux 上安装 Web 服务器、数据库和编程语言,如何组合这些块来构建一个应用程序,先是在 PHP,然后在 Ruby on Rails。
先决条件本教程面向所有有兴趣采用 Linux 作为开发平台的软件开发人员以及那些想要探索可免费得到的开源软件开发工具的开发人员。要跟随本教程进行学习,您必须对                                Linux 命令行 shell 很熟悉并具有一些编程经验。具备在 Linux 上安装和配置软件的经验会有帮助,但不是必要条件。
系统需求要运行本教程中的示例,需要一个至少具备 300 MB 可用硬盘空间的 Linux 盒。为了安装这些软件包,要求对机器能够进行 Root 访问。本教程中的示例均创建于 Ubuntu                                        Desktop Linux 8.04.1 之上,它作为 Parallels on Mac OS X                                        Leopard 内的虚拟机运行。不过,Ubuntu 并非必需;这些示例使用的是 Aptitude,它可以在任何基于 Debian 的发行版内找到。
一场现代的复兴 时下,为 World Wide Web 创建内容和页面的制作者和设计者都在经历着一场复兴。媒介丰富而多样,而诸如 Cascading Style Sheets (CSS) 这样的标准则让页面富于表现力和吸引力。
Web 开发人员也在经历复兴。过去的十年间,程序员一直艰苦地进行以服务器为中心的编码,现在他们开始把代码编写转到中前端,这让 Web 浏览器演变成了其自身的计算平台。Asynchronous JavaScript + XML,即为人熟知的 Ajax,是这场转变的主宰技术。Basecamp、Google Mail 和 Apple 的 MobileMe(相关链接,请参看  小节)等站点 — 被 pundits 视为 “胖客户机” — 现在都超越了桌面上可用的软件包。                                       
这场复兴主要得益于创业者和创造性。对别出心裁的追求也功不可没。最新一代的工具和应用程序框架能自动化和简化构建、部署和维护一个网站所需的艰苦工作。而且,可用的工具较先前更多。软件开发人员现在可以从大量内置了 Ajax 的工具、编程语言和框架中进行选择来创建高级的 Web 应用程序。
更妙的是,大多数这类新的软件开发工具都是开源、免费的,可从 Internet 下载,还可移植到 Linux、Mac OS X 以及 Microsoft® Windows® 的最新版本。对比其他操作系统,Linux 还有自己特殊的优势:它可免费获得。
在本教程,您将深入了解开源和 Linux,了解各种可供开发人员创建和部署 Web 应用程序的大量免费软件。免费软件提供了很多吸引人的、极具竞争性甚至是行业领先的特性。您将有机会看到服务器软件、数据库、编程语言、编辑器和集成开发环境(IDE)以及用于支撑代码的新的机制。此外,您还将创建一些简单的 Web 服务器环境并打造几个示例应用程序。
即使您对 Linux shell 环境的经验并不那么丰富,也会发现本教程很容易理解和遵循。如果您之前从未使用过 Linux,刚开始输入命令可能会感觉有点奇怪,但请一定坚持,因为本教程提供的是逐步指导,很容易上手。                                       
这里所给出的大多数软件都是可移植的,而且您还可能会找到预置代码包,可以安装于几乎所有的流行操作系统。实际上,Apple 的 Mac OS X 的每个副本都包括了这里所展示的大多数软件以及数百种其他的开源包。
本教程使用 Ubuntu Linux(请参见  小节)。Ubuntu 可免费得到,即使新手也能很快下载和安装。它还很容易使用和管理。其桌面很友好,还有一个称为 Aptitude(或 “apt”)的工具,能瞬间安装和更新软件。
本教程基于的是 Ubuntu Desktop 8.04.1 的全新安装(如  所示)。最理想的情况是您具备自己的 Ubuntu 机器和根或超级用户访问权限。超级用户访问通常是安装和运行系统软件所必需的。
图 1. Ubuntu 桌面何为 LAMP 要提供一个典型的 Web 应用程序,比如,一个在线商店,您必须具备一台计算机、Internet 连接、操作系统、Web 服务器软件、数据库和应用程序本身。在 Linux 机器上,这就形成了所谓的 “栈” — 就如同一叠薄烤饼一样,应用程序在数据库之上,数据库在 Web 服务器之上,服务器又在操作系统之上 — 这被称为 LAMP,是 “Linux、Apache、MySQL 和 Perl、PHP、                                        Python 或其他编程语言的缩写。
LinuxLinux 是一种操作系统,提供了访问计算机资源(包括网络连接、处理器、硬盘、打印机等)所需的所有特性,并能同时运行多个应用程序。Linux 由一个中心内核 — 操作系统的“大脑” — 和数千个实用工具和程序组成。
ApacheApache(更正式的说法是 Apache HTTP Server)是一种开源 Web 服务器。作为 Linux 上的永久应用程序,等待来自 Web 浏览器的请求。当有请求发出时,Apache 接受连接、解释和处理该请求(比如 “获取名为 my_vacation.html 的文件”),并返回结果。Apache 也能对多个请求进行多任务的并行处理以最小化延迟。
MySQLMySQL 是一种开源数据库(很多可用开源数据库中的一种)。MySQL 用来保存应用程序请求和搜集的数据。比如,MySQL 数据库可能存有商店的库存信息以及通过店主的网站所下的全部订单。MySQL 也会作为一种永久的应用程序或服务器运行,空闲地侦听请求。正如典型的服务器那样,MySQL 也可以进行多任务来最大化吞吐量。
Perl、PHP 和 Python在早先的 LAMP 配置中,“P” 代表 ,一种出现很久的开源编程语言,是推动了 Linux 上的动态(即,不限于一组静态页面)Web 应用程序的 “先驱”。在 5 年前,PHP 和 Python — 其他两种脚本语言 — 出现,其首字母也是 “P”,因此缩写词 LAMP 得以延续。
其他的 Web 服务器、数据库和编程语言 Apache 并非可用于 Linux 的惟一 Web 服务器。比如,lighttpd(读音为 “lighty”)就很小巧、快捷,而且比 Apache 更容易配置。此外还有其他的开源数据库。PostgreSQL 就是一种很流行的开源数据库,可提供对交易的广泛支持,而 SQLite                                        则以小巧著称(SQLite 内嵌于每个 iPhone)。当然,许多的 Web 编程语言,不管是编译的还是解释的,都可用于 Linux,其中包括 Java™、Mono(Microsoft 的 .NET 框架的一种开源实现)和 Ruby。
如今,LAMP 指代开源栈时简直是包罗万象。经常会听到开发人员这么说:“我们使用 LAMP”,意思是说其公司的 Web 基础设施是开源的。
返回列表