系統環境:
yum groupinstall "Development Tools" yum install php-devel freetds-devel yum install bzip2-devel db4-devel expat-devel gmp-devel aspell-devel httpd-devel libjpeg-devel pam-devel sqlite-devel pcre-devel libc-client-devel cyrus-sasl-devel openldap-devel postgresql-devel net-snmp-devel libxslt-devel gd-devel
// 下載 SRPM:http://ftp.isu.edu.tw/pub/Linux/CentOS/5.5/os/SRPMS/
cd /usr/src/redhat/SRPMS wget http://ftp.isu.edu.tw/pub/Linux/CentOS/5.5/os/SRPMS/php-5.1.6-27.el5.src.rpm rpm -ivh php-5.1.6-27.el5.src.rpm vi ../SPECS/php.spec
php.spec:
在最後一個 %package...%description 加上
%package mssql Group: Development/Languages Requires: php = %{version}-%{release}, php-pdo Summary: A module for PHP applications that use the MSSQL database. provides: php_database BuildRequires: freetds-devel %description mssql The MSSQL package contains a dynamic shared object that will add support for accessing MSSQL databases to php.
找到這幾行,在 CFLAGS 這行刪除 -Wno-pointer-sign 。
# Regenerate configure scripts (patches change config.m4's) ./buildconf --force CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" CPPFLAGS="-DLDAP_DEPRECATED=1" export CFLAGS CPPFLAGS # Install extension modules in %{_libdir}/php/modules. EXTENSION_DIR=%{_libdir}/php/modules; export EXTENSION_DIR
重新編譯套件
Notes: 如果有顯示缺少的套件,請先完成所有套件安裝。
rpmbuild -bb ../SPECS/php.spec
cd ../BUILD/php-5.1.6/ext/mssql/ phpize ./configure --with-mssql make make install
vi /etc/php.d/mssql.ini
mssql.ini:
; Enable mssql extension module extension=mssql.so
重啟 httpd 服務
修改 /etc/freetds.conf,新增
[MSSQL_2K8] host = <mssql.server.ip.address> port = 1433 client charset = UTF-8 tds version = 8.0 text size = 20971520
demo.php:
<?php $msconnect = mssql_connect("MSSQL_2K8","dbuser","dbpass"); $msdb = mssql_select_db("ERP",$msconnect); $msquery = "SELECT * from DIM_FSA01_IVS where CUST_NO='MA01'"; $msresults = mssql_query($msquery); while ($row = mssql_fetch_array($msresults)) { echo "<li>" . $row['CUST_NO'] . " " . $row['PKG_TYPE'] . " " . $row['IV_TIME'] . "</li>\n"; } ?>
Notes:
* MSSQL_2K8,必須與 freetds 設定相同,後面是登入DB 的帳號及密碼。
* ERP,要連結的 DB Name。