<p>Linux 平台应用最广泛的数据库应该还是MYSQL ,但项目必须要用到MS SQL SERVER 做为主数据库。而网站程序却要用PHP 来写。无奈之下只能苦寻在LINUX下配置 访问MS SQL SERVER的方法。</p>
<h2 id="toc_1">安装基本环境</h2>
<h3 id="toc_2">安装lnmp</h3>
<p>现在安装很方便,一键包点几下就完成,推荐军哥的LNMP</p>
<h3 id="toc_3">安装FreeTDS 组件</h3>
wget http://mirrors.ibiblio.org/freetds/stable/freetds-stable.tgz
tar zxvf freetds-stable.tgz
cd freetds-0.91/
./configure --enable-msdblib --prefix=/usr/local/freetds
make && make install
<h3 id="toc_4">为php 添加 mssql支持</h3>
<p>进入lnmp的安装包源代码处配置并编译</p>
cd lnmp1.3*/src/
tar zxvf php-5.4.45.tar.gz
cd php-5.4.45/ext/mssql/
#使用phpize生成configure脚本文件
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds
make && make install
<p>然后编辑 /usr/local/php/etc/php.ini<br/>
在extension = "pdo_mysql.so"下面添加<br/>
extension = "mssql.so"</p>
<p>保存后,/root/lnmp restart 重启lnmp即可使php 支持mssql</p>
<h2 id="toc_5">配置FreeTDS</h2>
<h3 id="toc_6">配置数据库源</h3>
<p>FreeTDS类似于windows 中的数据源,需要先配置才能使用</p>
<p>修改freetds配置文件</p>
vi /usr/local/freetds/etc/freetds.conf
<p>在文件末尾添加以下类似配置添加SQL SERVER服务器信息后保存</p>
[Server1]
host = 192.168.1.2 #sql server 服务器1
port = 1433 # sql server 服务端口
tds version = 7.0 # sql server 2000
[Server2]
host = 192.168.1.5 #服务器2
port = 1433
tds version = 8.0 # sql server 2005/2008
<h3 id="toc_7">测试连接数据库</h3>
/usr/local/freetds/bin/tsql -S Server1 -U 用户名 -P 密码
<p>命令行若显示以下内容的话则成功证明成功!</p>
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>
<h3 id="toc_8">数据库查询</h3>
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>use ErpData
1>go
1>select * from emplyee
1>go
1>###每次输完语句后需要再输一次go 才会真正执行语句
<h3 id="toc_9">PHP使用MSSQL</h3>
//连接数据库
$msdb=mssql_connect("Server1","数据库用户名","密码") or die("Can't connect sql server");
mssql_select_db("ErpData",$msdb); //选择数据库
$sql="select * from emplyee where id=1";
$result = mssql_query($sql, $msdb);
if($row=mssql_fetch_array($result))
{
$empcode = $row[0];
}
mssql_free_result($result);//清空记录集
mssql_close($msdb);//关闭数据库连接