PHP 7.x PDO 連結 MS SQL Server 環境建置 for CentOS 7
安裝
PHP
請參考 CentOS 7 安裝 PHP 7.x。
SQL Server ODBC Driver
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
yum remove unixODBC-utf16 unixODBC-utf16-devel
ACCEPT_EULA=Y yum install -y msodbcsql17
ACCEPT_EULA=Y yum install -y mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
yum install -y unixODBC-devel
相關驅動
依 Linux 及 macOS Microsoft Drivers for PHP for SQL Server 安裝教學課程 | Microsoft Docs 在 Red Hat 7 (CentOS 7) > 步驟 2: 安裝必要條件的方式安裝會出現 Error,因為 CentOS 缺少 GCC 編譯器,就算是升級也是找到舊版的 GCC,因此參考 pecl install sqlsrv fails · Issue #726 · Microsoft/msphpsql · GitHub 的解決方式如下:
yum install -y centos-release-scl
yum install -y devtoolset-7
scl enable devtoolset-7 bash
SQL Server PDO 驅動
讓 PHP 可以透過 PDO 連結 SQL Server:
yum install -y php-sqlsrv
確認載入模組
php -m | grep sqlsrv
pdo_sqlsrv
sqlsrv
SELinux 安全性限制
SELinux 預設限制透過網路來與 DataBase 連結,必須啟用:
setsebool -P httpd_can_network_connect_db 1
PDO 連結 SQL Server 程式範例
使用 POD 連結 SQL Server 程式如下:
<?php
// 主機位址
$host = '192.168.3.251';
// PORT
$port = '1433';
// 資料庫名稱
$dbname = '';
// 帳號
$user = 'sa';
// 密碼
$passwd = '';
$dbConn = new PDO(
"sqlsrv:server=$host,$port;Database=$dbname",
$user,
$passwd
);
$sql = 'SELECT SYS_VIEWID AS ID,
SYS_Name AS name
FROM FT_Employee
WHERE SYS_VIEWID = :SYS_VIEWID';
$stmt = $dbConn->prepare($sql);
$stmt->execute(array(
':SYS_VIEWID' => '1020501'
));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo '<pre>';
var_dump($row);
echo '</pre>';
啟動 PHP 內建 Web server (詳細使用方式可參考 PHP 內建 Web server 使用教學 for Linux):
php -S 0.0.0.0:80
開啟瀏覽器顯示 DabaBase 資料:
參考
本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.