您好, 访客   登录/注册

基于Ubuntu系统下PHP访问MicrosoftSQLServer数据库的实现方案

来源:用户上传      作者: 蓝天莹 朱寿华

  摘 要: 本文针对目前比较流行的传统的服务器端脚本语言ASP及ASP.NET等都不具备跨平台开发能力的缺点,为了提高编译效率及满足跨平台的需要,提出运用一门新的服务器端脚本语言――PHP来实现。由于Ubuntu服务器版本的运行极为稳定、安全可靠,本文提出了一种基于此系统下采用PHP数据库函数直接存取SQL Server数据库的实现方案。
  关键词: Ubuntu操作系统 PHP脚本语言 扩展库
  
  1.引言
  在最近的几年中,PHP已经发展成为了世界上最为流行的Web平台,它运行在全球超过1/3的Web服务器上[1]。在Internet应用中,CGI和ASP是比较流行的传统的服务器端脚本技术。CGI脚本是一个单独的程序,而不是嵌在HTML文档中再通过另一个程序解释替换的,所以它是一种“非嵌入式”的服务器端脚本。但其缺点是每一次修改CGI程序都必须重新将其编译成执行文件。ASP则是嵌入式的服务器端脚本,每一次修改脚本并不需要重新编译成执行文件就可以直接执行,但ASP有一个致命的缺点:不具有跨平台开发能力。为了提高编译效率及满足跨平台的需要,PHP应运而生,在Wel CGI的领域里掀起了一场革命。
  2.相关知识介绍
  2.1 Ubuntu操作系统
  Ubuntu是一个以桌面应用为主的Linux操作系统,是由马克・舍特尔沃斯创立,其首个版本―4.10发布于2004年10月20日,它以Debian为开发蓝本。Ubuntu的开发目的是为了使个人计算机变得简单易用,同时也提供针对企业应用的服务器版本。与其他基于Debian的Linux发行版,如MEPIS、Xandros、Linspire、Progeny和Libranet等相比,Ubuntu更接近Debian的开发理念,它主要使用自由、开源的软件,而其他发行版往往会附带很多闭源的软件。
  2.2 PHP脚本语言
  PHP(Personal Home Page)是一种服务器端脚本语言,它是专门为Web而设计的[2]。PHP在语法方面混合了C、Java、Perl,以及PHP以前版本的优点。它相当于Script与CGI的结合语言,但是其执行将效率却比CGI更好,程序编写也比HTML更便利且更富有弹性,程序的安全性及保密性也比Script好。在函数支持方面,PHP几乎覆盖了Web应用的各个方面,其中最有特色的是数据库函数,使用PHP完成一个含有数据库功能的网页非常简单。
  3.具体实现方案
  由于Ubuntu服务器版本的运行极为稳定、安全可靠。还继承了debian的优良血统,包管理机制十分强大。并且还包括了完整的LAMP架构(Linux+Apache+MySQL+PHP),特别适宜中小企业的实际应用。因此在下面实例中,我将会重点介绍如何在Ubuntu系统下使用PHP数据库函数访问SQL Server。
  3.1搭建LAMP开发平台
  先安装Apache2,在终端输入命令:sudo apt-get install apache2。然后安装MySQL数据库,命令:sudo apt-get install mysql-server mysql-client;sudo/etc/init.d/mysql restart(重新启动mysql服务);sudo mysqladmin -u root password newpassword(设置mysql管理员密码)。再安装php5,命令:sudo apt-get install php5。
  最后安装php5的相关支持模块:libapache2-mod-php5和php5-mysql。libapache2-mod-php5用于Apache2网络服务器php5的模块。php5-mysql直接从PHP脚本提供了MySQL的数据库连接模块,它包括通用的“MySQL”模块,可用于连接到MySQL。命令:sudo apt-get install libapache2-mod-php5 php5-mysql。
  3.2编译php5源代码
  因为Ubuntu系统(包括debian)是不提供php5-mssql包的,其他的Linux版本大概也是没有的。要使PHP数据库函数能连接MSSQL,必须得有MSSQL的数据库连接模块支持,即mssql.so。由于在Ubuntu缺省情况下,并没有提供C/C++的编译环境。因此需要先安装编译环境。为了能够编译Ubuntu的内核,Ubuntu提供了一个build-essential软件包开发工具。命令:sudo apt-get install build-essential debhelper;sudo apt-get source php5(下载php5源代码);sudo apt-get build-dep php5(编译PHP所有的依赖关系)。
  当前的php版本是php5-5.2.4。进入刚下载的php5源代码文件夹,编辑modulelist模块列表配置文档,添加MSSQL模块参数。命令:cd php5-5.2.4/debian;sudo gedit modulelist。在文档中找到代码:mysql MySQL,在其下面加入一行:mssql MSSQL。
  接着编辑rules文本,该文本是一个可构建一个架构依赖包和架构独立包的假设包。命令:sudo gedit rules。在rules中找到代码:--with-mysql=shared,/usr\,在其下面加入一行:--with-mssql=shared,/usr \。最后用dpkg-buildpackage命令把php5源代码打包成deb包,并编译安装。命令:sudo dpkg-buildpackage。
  在Ubuntu系统中,常用的动态链接库和软件包的配置文件一般都存放在/usr/lib 文件夹下。因此,编译结束后,在php5-5.2.4/debian/php5-mssql/usr/lib/php5/20060613+lfs文件夹中找到mssql.so文件,然后把它拷贝到usr/lib/php5/20060613+lfs文件夹里。命令:sudocp/php5-5.2.4/debian/php5-mssql/usr/lib/php5/20060613+lfs/mssql.so /usr/lib/php5/20060613+lfs/。
  这时要注意,如果当前不是用root用户登录系统的话,则是没有权限对php5-5.2.4文件夹中的文件进行拷贝操作。因此要先切换到root用户,再进行拷贝操作。命令:su(输入root密码后即可切换到root用户);nautilus(进入root的根目录)。
  3.3添加mssql支持
  最后,在php5默认的配置加载目录etc/php5/conf.d中添加一个mssql.ini文件,作用是加载PHP的mssql支持。即载入mssql.so扩展库文件。命令:sudo gedit /etc/php5/conf.d/mssql.ini。输入代码:# configuration for php MSSQL module;extension=mssql.so。保存关闭,重启apache2。至此所有操作已全部完成。
  4.结语
  PHP并不是一种拥有庞杂纷繁体系结构的语言,而正是这种简单、完全为Web设计的、解释型的小语言体系,使得PHP成为互联网上使用最为广泛的编程语言之一[3]。PHP的确能够满足互联网行业对开发效率、维护便捷型和执行力方面的要求,特别在数据库的支持方面,更是具有强大的优势及先进性。因此学会使用PHP函数访问各种类型的数据库是PHP开发人员必须熟悉与掌握的知识之一。
  
  参考文献:
  [1][美]古曼兹,贝肯,瑞桑斯著.简张桂译.PHP 5权威编程.北京:电子工业出版社,2007.
  [2][澳]Luke Welling,Laura Thomson著.武欣,邵煜译.PHP和MySQL Web开发(原书第三版).北京:机械工业出版社,2005.
  [3][美]勒道夫,塔特罗,麦肯泰尔著.陈浩,胡丹,徐景译.PHP程序设计(第2版).北京:电子工业出版社,2007.


转载注明来源:https://www.xzbu.com/9/view-974862.htm