centos 5.4 linux 下的 php(fastcgi) 需要连接相关部门的sql server 2000数据库,配置了扩展freetds扩展。
1、编译安装FreeTDS
<OL class=dp-xml><LI class=alt><SPAN><SPAN>mkdir -p /data0/software/ </SPAN></SPAN><LI><SPAN>cd /data0/software/ </SPAN><LI class=alt><SPAN>wget ftp://ftp.ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz </SPAN><LI><SPAN>tar zxvf freetds-stable.tgz </SPAN><LI class=alt><SPAN>cd freetds-0.82/ </SPAN><LI><SPAN>./configure </SPAN><SPAN class=attribute>--prefix</SPAN><SPAN>=/usr/local/webserver/freetds </SPAN><SPAN class=attribute>--with-tdsver</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>8</SPAN><SPAN>.0 --enable-msdblib </SPAN><LI class=alt><SPAN>make && make install </SPAN><LI><SPAN>cd ../ </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN>echo "/usr/local/webserver/freetds/lib/" </SPAN><SPAN class=tag>></SPAN><SPAN> /etc/ld.so.conf.d/freetds.conf </SPAN><LI class=alt><SPAN>ln -s /usr/local/webserver/freetds/lib/libsybdb.so.5.0.0 /usr/local/webserver/freetds/lib/libsybdb.so.4 </SPAN><LI><SPAN>/sbin/ldconfig </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN>rm -f /usr/local/webserver/freetds/etc/freetds.conf </SPAN><LI class=alt><SPAN>vi /usr/local/webserver/freetds/etc/freetds.conf </SPAN></LI></OL>
输入以下内容:
引用
<OL class=dp-xml><LI class=alt><SPAN><SPAN>[global] </SPAN></SPAN><LI><SPAN> # TDS protocol version </SPAN><LI class=alt><SPAN>; tds </SPAN><SPAN class=attribute>version</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>4</SPAN><SPAN>.2 </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN> # Whether to write a TDSDUMP file for diagnostic purposes </SPAN><LI><SPAN> # (setting this to /tmp is insecure on a multi-user system) </SPAN><LI class=alt><SPAN>; dump </SPAN><SPAN class=attribute>file</SPAN><SPAN> = /tmp/freetds.log </SPAN><LI><SPAN>; debug </SPAN><SPAN class=attribute>flags</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>0xffff</SPAN><SPAN> </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN> # Command and connection timeouts </SPAN><LI class=alt><SPAN>; </SPAN><SPAN class=attribute>timeout</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>10</SPAN><SPAN> </SPAN><LI><SPAN>; connect </SPAN><SPAN class=attribute>timeout</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>10</SPAN><SPAN> </SPAN><LI class=alt><SPAN> </SPAN><LI><SPAN> # If you get out-of-memory errors, it may mean that your client </SPAN><LI class=alt><SPAN> # is trying to allocate a huge buffer for a TEXT field. </SPAN><LI><SPAN> # Try setting 'text size' to a more reasonable limit </SPAN><LI class=alt><SPAN> text </SPAN><SPAN class=attribute>size</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>64512</SPAN><SPAN> </SPAN><LI><SPAN> </SPAN><LI class=alt><SPAN> </SPAN><SPAN class=attribute>host</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>mssql</SPAN><SPAN>.yourdomain.com </SPAN><LI><SPAN> </SPAN><SPAN class=attribute>port</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>1433</SPAN><SPAN> </SPAN><LI class=alt><SPAN> tds </SPAN><SPAN class=attribute>version</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>8</SPAN><SPAN>.0 </SPAN><LI><SPAN> client </SPAN><SPAN class=attribute>charset</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>UTF</SPAN><SPAN>-8 </SPAN></LI></OL>
2、编译安装PHP自带MSSQL扩展
立即学习“PHP免费学习笔记(深入)”;
进入本地已存在的php-5.2.XX源码包目录:
<OL class=dp-xml><LI class=alt><SPAN><SPAN>cd /data0/software/php-5.2.XX/ext/mssql/ </SPAN></SPAN><LI><SPAN>/usr/local/webserver/php/bin/phpize </SPAN><LI class=alt><SPAN>./configure </SPAN><SPAN class=attribute>--with-php-config</SPAN><SPAN>=/usr/local/webserver/php/bin/php-config </SPAN><SPAN class=attribute>--with-mssql</SPAN><SPAN>=/usr/local/webserver/freetds/ </SPAN><LI><SPAN>make && make install </SPAN></LI></OL>
3、在php.ini配置文件中增加mssql.so
<OL class=dp-xml><LI class=alt><SPAN><SPAN>vi /usr/local/webserver/php/etc/php.ini </SPAN></SPAN></LI></OL>
增加一行:
引用
<OL class=dp-xml><LI class=alt><SPAN><SPAN class=attribute>extension</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>"mssql.so"</SPAN><SPAN> </SPAN></SPAN></LI></OL>
4、重启PHP FastCGI
<OL class=dp-xml><LI class=alt><SPAN><SPAN>/usr/local/webserver/php/sbin/php-fpm restart </SPAN></SPAN></LI></OL>
5、测试文件(test_mssql.php):
<OL class=dp-xml><LI class=alt><SPAN><SPAN class=tag><?</span><SPAN class=tag-name>php</SPAN><SPAN> </SPAN></SPAN><LI><SPAN>header("Content-type: text/html; </SPAN><SPAN class=attribute>charset</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>utf</SPAN><SPAN>-8"); </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>msdb</SPAN><SPAN>=</SPAN><SPAN class=attribute-value>mssql_connect</SPAN><SPAN>("mssql.yourdomain.com:1433","username","password"); </SPAN><LI><SPAN>if (!$msdb) { </SPAN><LI class=alt><SPAN> echo "connect sqlserver error"; </SPAN><LI><SPAN> exit; </SPAN><LI class=alt><SPAN>} </SPAN><LI><SPAN>mssql_select_db("database_name",$msdb); </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute>result</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>mssql_query</SPAN><SPAN>("SELECT top 5 * FROM table", $msdb); </SPAN><LI><SPAN>while($</SPAN><SPAN class=attribute>row</SPAN><SPAN> = </SPAN><SPAN class=attribute-value>mssql_fetch_array</SPAN><SPAN>($result)) { </SPAN><LI class=alt><SPAN> var_dump($row); </SPAN><LI><SPAN>} </SPAN><LI class=alt><SPAN>mssql_free_result($result); </SPAN><LI><SPAN class=tag>?></SPAN><SPAN> </SPAN></LI></OL>
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号