Drupal + Oracle:OraDrup 项目内幕
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 “开源的”和“标准的”这两个形容词缺一不可吗?将 Drupal 与 Oracle 数据库 XE 组合在一起所做的努力证明,答案是:这不是必需的。 2007 年 1 月发表 试举下列情形:在对一个有关实现的项目进行研
欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入
“开源的”和“标准的”这两个形容词缺一不可吗?将 Drupal 与 Oracle 数据库 XE 组合在一起所做的努力证明,答案是:这不是必需的。
2007 年 1 月发表
试举下列情形:在对一个有关实现的项目进行研究时,您阅读了一篇有关某个开源软件的网志或文章,其中说该软件是“不依赖数据库的”并且可以与“任何”支持 ANSI SQL 的数据库(例如 Oracle 数据库)协作。
经过一番调查,您发现该软件是一项很了不起的杰作。然而,再经过一段时日的深入探索后,您发现,事实上该软件只可用于极少量的数据库管理系统,而不是象写网志的人/作者所宣称的那样适用于所有标准数据库。因此,您取消了该项目。
该问题在开源软件中很常见,为了保留其所有优势不必采用“标准的”方法。该案例研究向您介绍 OraDrup 项目,其目标是将常用开源 Drupal CMS 与 Oracle 数据库组合在一起,使前者可供庞大的 Oracle 开发人员社区选择使用,反之亦然。
Drupal 是什么?
开源 CMS 已经流行很久了。它们以各种形式出现,通过 Java、PERL、Python 以及无所不在的 PHP 等众多技术实现。某些 CMS 可能专注于特定类型的内容,例如可能带少量图像处理的文字。其他 CMS 则有很多功能,包括音频、视频、任意文档、结构化信息以及事件。
例如,Drupal 就是一种高级的内容管理框架。利用 Drupal 可以通过一致、有序的方式管理各种内容。Drupal 站点是面向多个用户的,可以充当网志、论坛、协作创建工具、目录、一般社区站点或者以上几项的任意组合。它是一种构建复杂 Web 站点或者将基于 HTTP 的界面整合到现有系统中的强大工具。
Drupal 在 2000 年刚开始出现的时候只是一个简单的、没什么名气的内部消息站点,其中有一个内置的公告板,供一群学员朋友在这里互留信息。之后不久,该站点就在万维网上占据了自己的一席之地。它有了现在的名称,并以开源软件的形式进行发布。它引起了很多人的兴趣,很快开始呈现出自己的特色,其中综合了很多理念,如协作、内容管理、工作流、联合、分布式身份验证等。现在,全球有大概 400 人正致力于该系统各个方面的工作,并且该人数还在持续增长。
Drupal 的构建高度模块化。它具有一个支持一组核心模块小内核,这些模块负责提供应用程序服务。例如,系统模块负责管理站点的一般功能、书籍模块允许用户协作创作书籍、搜索模块负责建立内容索引以及进行基于关键字的搜索。核心模块数量很多,您可以根据要求随意启用或禁用它们。这确实使得该系统十分灵活。
在外部看来,扩展核心包提供的 Drupal 功能就变成了在其他模块中进行构建和插入。在该特殊的域,有贡献的模块并不匮乏。例如,如果要求对软件进行管理,则可以安装和激活项目模块。项目问题跟踪模块进一步扩展了项目模块的功能。这些模块由 Drupal 社区主动进行维护和改进。这些模块丰富多样,如地理空间图示化、OpenID、思维导图甚至英文到“海盗语言”的翻译。
Drupal 的另一个优点是它的主题化系统。主题是指定 Drupal 站点外观的术语。在其他 CMS 中,该功能有时称为模板化或“换肤”。Drupal 很适应这样的自定义。
Drupal 主题化的好处是,自定义站点外观时根本不需要修改现有的代码。可显示项目(例如页面、图像、表单元素等)的生成通过一组名为“主题功能”的基准线呈现功能来处理。主题系统允许开发人员将可选择的主题功能放入主题目录中,以使用和覆盖这些功能。例如,一个包含以前呈现为无序列表的选项的菜单可以很容易地针对特定主题转换为一组动画选项卡。
为什么要将 Oracle 和 Drupal 放到一起?
Oracle 的契入点是什么?到目前为止,Drupal 主要是一个面向 MySQL 的系统。Drupal 安装中很流行的部署选择是 LAMP 堆栈 (Linux-Apache-MySQL-PHP)。当然,Drupal 相当于在家运行于能够安装 MySQL 和 PHP 的任何平台之下。
这对平常的实现来说都很好,但是有时 LAMP 中的“M”不是一个选项。有些机构可能没有那么大的财力可以将其他数据库服务器合并到他们的运营中。在其他情况下,MySQL 可能不是任务的合适解决方案。在此类情况下,不可能采用 Drupal。
此外,Drupal 有着这样一个活跃的开发人员社区,因此它完全可以进行扩展以将 Oracle 技术包含在内。为此,Drupal 可供基于 Oracle 的开发人员选择使用,反之亦然。如果是这样,看到它可以利用或受益于以下这些 Oracle 特性将会是多么令人感到兴奋的一件事:
- 数据分区和并行化
- 复制和队列技术
- 真正应用集群
- 透明应用程序故障切换和其他高可用性特性
- 数据库级别的细粒度访问控制
- 自动段空间管理
此外,Oracle 数据库的巨大影响力将会为 Drupal 争取到更多之前其往往都会受到忽略的展示机会。
关于 Drupal 支持任意数量的数据库平台的潜力已经有过很多讨论。实际上,支持 PostgreSQL 与支持 MySQL 是紧密相连的。那么,为什么没有关于 Drupal 可在 Oracle 之下运行的报道呢?尽管他们对构建具有 Oracle 兼容性的项目抱有美好愿望,但这一愿望似乎深陷“百慕大三角”。因此,基于 Oracle 的 Drupal 实现似乎成为了一个神话 ― 至今还无人见过此种实现。
我决定去探索该神话起源的第一手资料。将 Oracle 支持构建到 Drupal 4.7.0 中的难易度如何?我将通过创立 OraDrup 项目来一探究竟。
[1] [2] [3]

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Oracle 打不开的解决办法包括:1. 启动数据库服务;2. 启动监听器;3. 检查端口冲突;4. 正确设置环境变量;5. 确保防火墙或防病毒软件未阻止连接;6. 检查服务器是否已关闭;7. 使用 RMAN 恢复损坏的文件;8. 检查 TNS 服务名称是否正确;9. 检查网络连接;10. 重新安装 Oracle 软件。

解决 Oracle 游标关闭问题的方法包括:使用 CLOSE 语句显式关闭游标。在 FOR UPDATE 子句中声明游标,使其在作用域结束后自动关闭。在 USING 子句中声明游标,使其在关联的 PL/SQL 变量关闭时自动关闭。使用异常处理确保在任何异常情况下关闭游标。使用连接池自动关闭游标。禁用自动提交,延迟游标关闭。

Oracle 数据库分页利用 ROWNUM 伪列或 FETCH 语句实现:ROWNUM 伪列用于通过行号过滤结果,适用于复杂查询。FETCH 语句用于获取指定数量的第一行,适用于简单查询。

Oracle 中,FOR LOOP 循环可动态创建游标, 步骤为:1. 定义游标类型;2. 创建循环;3. 动态创建游标;4. 执行游标;5. 关闭游标。示例:可循环创建游标,显示前 10 名员工姓名和工资。

要停止 Oracle 数据库,请执行以下步骤:1. 连接到数据库;2. 优雅关机数据库(shutdown immediate);3. 完全关机数据库(shutdown abort)。

可以通过使用 Oracle 的动态 SQL 来根据运行时输入创建和执行 SQL 语句。步骤包括:准备一个空字符串变量来存储动态生成的 SQL 语句。使用 EXECUTE IMMEDIATE 或 PREPARE 语句编译和执行动态 SQL 语句。使用 bind 变量传递用户输入或其他动态值给动态 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 执行动态 SQL 语句。

在CentOS系统上搭建Hadoop分布式文件系统(HDFS)需要多个步骤,本文提供一个简要的配置指南。一、前期准备安装JDK:在所有节点上安装JavaDevelopmentKit(JDK),版本需与Hadoop兼容。可从Oracle官网下载安装包。环境变量配置:编辑/etc/profile文件,设置Java和Hadoop的环境变量,使系统能够找到JDK和Hadoop的安装路径。二、安全配置:SSH免密登录生成SSH密钥:在每个节点上使用ssh-keygen命令

打开 Oracle 数据库的步骤如下:打开 Oracle 数据库客户端连接到数据库服务器:connect username/password@servername使用 SQLPLUS 命令打开数据库:SQLPLUS
