稳定的WEB应用组合:达梦数据库+Apache+PHP

日期: 2008-06-09 来源:TechTarget中国

  1. 技术简介

  1.1. Apache服务器介绍

  Apache是当前最流行的 HTTP 服务器软件之一,它完全免费,完全源代码开放,并且在windows,unix和linux系统上都能运行。今天,它成为世界上最广泛应用的网站服务器,占到全世界的70%。众多有名的网站也采用Apache产品,比如说Amazon.com、Yahoo!。这个软件并不需要太多CPU资源,如果需要创建一个每天有数百万人访问的 Web 服务器,Apache 可能是最佳选择。

  1.2. PHP

  PHP 是一种服务器端的,嵌入HTML的脚本语言。PHP区别其他像客户端Javascript的地方是它的代码在服务器端执行。

  PHP能做什么?最低水平,PHP可以做任何其他CGI程序所能做的事,例如收集表格数据,生成动态页面内容,或者收发cookies。可能最强大,最有意义的特性是PHP支持大范围的数据库。书写一个支持数据库的Web 页面是难以置信的简单。

  1.3. 国产达梦数据库介绍

  达梦数据库是武汉达梦数据库有限公司的完全自主开发,具有独立知识产权的国产数据库,以其安全易用、标准、易用、稳定、高效,逐步得到市场认可,现以广泛应用于国民经济的各个领域,为打造国产化电子政务平台做出贡献。

  为了在Web开发方面提供更广泛的支持,达梦数据库也针对PHP提供了数据库接口,并且在使用上完全遵循了PHP的调用习惯,使PHP程序员能够很快的接受达梦数据库。

  2. 环境搭建

  2.1. 达梦数据库安装

  在环境搭建中,我们采用了达梦数据库08年1月份的DM5.6最新测试版本来进行验证。安装过程都非常友好,安装界面色彩鲜亮,给人留下深刻印象。整个安装只花费了不到2分钟,安装后,启动数据库服务,使用自带的数据库管理器登陆,OK,一切正常。

  2.2. Apache安装

  我们选择在windows平台上进行应用环境搭建,首先安装Apache Windows服务器,目前Apache服务器已经有两个分支:1.3.x和2.0.x,本文以1.3.x为例。

  下载网上的Apache安装包,一般有两种安装方式,一种是打包为msi的安装执行程序,这种安装方式相对简单,另一种是直接从压缩包中解压Apache。无论哪种方式,最好将Apache系统安装在符合“8.3”命名规则的目录下,也就是说目录名中不要包含空格,目录名不要超过8个字符长度,后缀名不要超过3个字符长度;否则系统在运行时会出现路径错误。安装完成后,一般要修改Apache的配置文件,配置文件在“/conf/httpd.conf”。 如果要修改Apache的配置,可以用任何一个文本编辑工具(例如记事本)编辑这个配置文件。在配置文件里,以“#”开头的行是注释行。主要参数有:

  Listen 127.0.0.1:80

  Port 80

  DocumentRoot “/root”

  Apache的IP地址和端口。一般来说不需要设置,Apache会绑定在本机所有IP地址的80端口上。

  最后执行Apache目录下的apache.exe程序,启动HTTP 服务器。在浏览器中输入http://localhost 试验一下服务器启动情况。

  2.3. PHP安装

  从PHP首页得到php4.3.4的zip文件,可以释放到任何目录,为了避免出现异常,在目录中不要包含中文字符和空格。解压后,将PHP安装目录下的PHP.INI_DIST文件更名为PHP.INI文件。在PHP配置文件里,以“;”开头的行是注释行。

  首先修改参数extension_dir,使之指向PHP_*.DLL所在的路径。一般是PHP安装路径下的extensions目录。

  extension_dir = “〈PHP安装路径〉extensions”

  upload_tmp_dir= “〈PHP安装路径〉tmp”

  session.save_path = “D:apachetmp”

  为了能让PHP程序中访问达梦数据库,需要将达梦PHP访问驱动dm_php.dll拷贝到〈PHP安装路径〉extensions,并且在PHP配置文件PHP.INI中加入如下参数。

  [dm]

  dm.allow_persistent = 1 ;是否允许持久性连接

  dm.max_persistent = -1 ;允许建立持久性连接的最大数. -1 为没有限制.

  dm.max_links = -1 ;允许建立连接的最大数(包括持久性连接). -1 为没有限制.

  dm.default_host = localhost ; 默认的主机地址

  dm.default_db = SYSTEM ; 默认登录的数据库

  dm.default_user = SYSDBA ; 默认的连接用户名

  dm.default_pw = SYSDBA ; 默认的连接口令.

  dm.connect_timeout = 10 ;连接超时,这个参数未实际的用到,等待服务器支持

  dm.defaultlrl = 4096 ;对于各种变长数据类型,每列最大读取的字节数。如果它;设置为0或是小于0,那么,读取变长字段时,将显示NULL值

  dm.defaultbinmode = 1 ; 是否读取二进制类型数据,如果它设置为0,那么二;进制将被NULL值代替

  dm.check_persistent = ON ;是否允许检察持久性连接的有效性,如果设置为ON,那么当重用一个持久性连接时,会检察该连接是否还有效

  dm.port = 12345 ;连接的端口号

  将修改后的php.ini文件拷贝到windows系统目录下,一般是c:windows.安装好PHP后,需要让Apache服务器知道PHP的安装路径,修改Apache的配置文件“/conf/httpd.conf”,在文件中加入:

  LoadModule php4_module “D:/apache/php/php4apache.dll”

  和

  AddModule mod_php4.c

  到此配置工作完毕,执行apache目录下的apache.exe启动服务。以下介绍两个简单的测试程序。

  2.4. 编写测试

  1、验证PHP服务是否正常。

  用记事本新建一个文本文件,输入如下语句:  

  <?phpinfo();?>

  保存为/root/info.php,在浏览器中输入http://localhost/info.php 出现PHP的配置信息介绍。

  2、验证PHP与达梦数据库之间的连接是否正常

  用记事本新建一个文本文件,输入如下语句:  

  <?php
  $link=dm_connect(“localhost”,”SYSDBA”,”SYSDBA”);

  if($link){echo ’连接达梦数据库成功’; }

  else {echo ’连接达梦数据库失败’;}

  ?>
 
  保存为/root/testconn.php, 在浏览器中输入http://localhost/testconn.php ,出现提示:

  连接达梦数据库成功。

  3. 从Mysql向达梦数据库的应用迁移

  目前已经有不少PHP程序员将原本构架在mysql上的PHP应用转向达梦数据库。在这方面,长沙政协作了一次成功的范例,将长沙市政协网站从mysql迁移到达梦数据库上。

  长沙政协网站通过门户网站的方式接受社会公众的社情民意投诉,还通过该门户网站,实现职能部门用户的协同办公,原系统架构在Apache服务器和Mysql数据库上。通过程序改造和数据迁移,实现应用从Mysql向达梦的迁移。

  图1

  因为DM数据库的PHP接口与Mysql数据库的PHP接口调用方式类似,接口函数的使用上尊重Mysql程序员的习惯,在迁移过程中,可以将原PHP脚本中的MYSQL_xxx_xxx(…)这样类型的函数直接替换为DM_xxx_xxx(…)。在准备阶段,可以用全文替换工具,一次将mysql函数替换成达梦的函数。

  在长沙政协网应用迁移的过程中,我们发现了一些值得注意的问题,如下:

  1、达梦数据库在建库时应该选择对象名大小写不敏感,如果要用在大小写敏感的库上,用PHP取值时,对像名大小写要跟建立对像时使用的一致;

  2、PHP4已经宣称不再支持mysql_db_query($db_name,$char_sql)函数,原有该函数的功能被mysql_query()函数替代,因此在迁移过程中,应该用dm_query($char_sql)来替代mysql_db_query($db_name,$char_sql)函数。

  3、一些特有的mysql的SQL方言,需要结合上下文,转换成达梦的SQL语句。由于达梦数据库在标准兼容方面做得比较好,所以这样的问题并不是很多。

  4. 系统优势

  4.1. 安全优势

  达梦数据库具有B1级安全级别,远高于进口到国内的国外同类产品。相比开源数据库Mysql,采用达梦数据库进行数据存储,可以利用达梦的存储加密、通讯加密和数据库安全策略,在安全方面更有保障。

  达梦数据库采用三权分立的数据库安全管理方式,将数据库管理员DBA的权限分为三个重要的系统管理员角色:系统管理员、系统审计员、系统安全员,分别完成自主访问控制、审计、强制访问控制的管理功能,相互制约,打破传统数据库系统管理员权限过于集中的弊端,有效地保证数据库的安全性。

  4.2. 性能优势

  达梦数据库在性能和功能上比Mysql更强大,能够更好的支撑Apache系统。Apache系统采用的是进程设计,因为多个进程的开销会比多线程的开销更大,因此Apache不能够很好的支持多CPU和多核技术。所以传统的对Apache系统的扩展多采用增加服务器的方式,而达梦数据库采用的是SIMP架构设计,也就是单进程多线程设计,能够支持多CPU和多核技术,与Apache互补,提高系统整体性能。

  达梦数据库支持64位系统平台,相比32位平台的数据库管理系统,达梦可以管理更大的内存,能够进行更大范围的计算。

  4.3. 易用性优势

  相比较而言,达梦数据库提供了丰富的客户端工具,比如管理器、交互式SQL工具、控制台工具、性能监控工具等,并且这些工具都是基于java开发,在任何平台上都可以运行,功能强大、界面友好、操作方便能满足用户各种应用管理的需求。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐