作者pttrAin (rAin)
看板PHP
標題[請益] 如何在Debian使用php存取sqlserver?
時間Fri Jul 27 15:50:00 2018
先報告一下環境
主機是MOXA UC-8112 , CPU是ARMv7 Cortex-A8
(不確定有沒有影響還是先列了)
Debian 8
--php安裝部份
現在只是想裝 php7 ,然後基本指令就遇到問題了 '_`
我主要是參考微軟的教學頁
https://tinyurl.com/y9mh4x3s
在執行這一行的時候遇到問題
wget -O /etc/apt/trusted.gpg.d/php.gpg
https://packages.sury.org/php/apt.gpg
系統回復
wget: not an http or ftp url:
https://packages.sury.org/php/apt.gpg
請問這何解?
--sqlsrv安裝部份
本來在php5.6的時候是靠 mssql_connect 來連線
但在php顯示select出來的資料時,中文部份都會變成問號,google過的解法都不行..
所以才想說改用pdo或sqlsrv等其他方式,但安裝sqlsrv也是一直遇到問題
沒有任何一篇教學或問答是我照著做可以完成的 '_`..
請問有沒有人知道在debian 8上面要用php來讀取sqlserver的安裝流程及使用方法?
php5.6或php7都可以,用pdo或sqlsrv都行..
另外像這一類的安裝,跟主機的CPU會有關係嗎?
之前要讓MQTT可以接受websocket的通訊也是找了老半天
到最後終於裝好了,但自以為成功的安裝流程裝到新機器上卻行不通
在linux系統上面只是要裝個軟體都這麼困難嗎 orz
--
◣◣◣◣◢ ██████◣██████◣ 角色名稱:Guner.RAIN
◢ ◣◣◣◣ █▊█ █▊█ █▊█ █▊█ 職業:Launcher
▍◥ ▍ꈠ ███ ███ ███ █▊█ 等級:41
▇▇▇▇ˍ
ζ █▊█ █ █◤█▊████◤ 出沒地:蜘蛛足球場
/
▼\▃
歡迎加入Arad的世界 出沒頻道:Ch.FIFA
◤◢▂▂ ▆ 戰略高手→電玩 Σ虛擬 線上 遨遊→Arad
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.227.169.245
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1532677807.A.AC1.html
1F:推 GALINE: wget 不支援 https..重裝或自己 compile 進 https 支援 07/27 19:03
我是看微軟的教學頁面照著做,上面就說要用wget Q_Q
2F:→ GALINE: 跟sqlserver不熟,在php.ini裡面設定mssql.charset看看? 07/27 19:07
3F:→ GALINE: ini_set('mssql.charset', 'UTF-8'); 07/27 19:07
4F:→ GALINE: linux 是比較少看到有人用 sql server.. 07/27 19:09
sqlserver並不是裝在linux上,只是想連線過去做CRUD
這樣會算很少見嗎@_@
6F:→ rog43: sqlsrv-for-PHP-7.0-on-Debian-in-3-ways 07/27 22:18
7F:→ rog43: 這篇的方法有解嗎? 07/27 22:18
之前有在別的地方看到一樣的內容,但試完好像失敗
8F:→ knives: linux上跑m$的東西,根本坑爆,你認真的? 07/28 06:21
我覺得在linux上面跑什麼都很坑…
9F:推 ri3567: 我在debian 9 跟mx linux 上都有灌起來 貼一下wget -O 的 07/30 10:50
10F:→ ri3567: 的訊息? 或畫面 07/30 10:51
11F:→ ri3567: 或是更新一下wget 07/30 10:55
BusyBox v1.22.1 (Debian 1:1.22.0-9+deb8u1) multi-call binary.
不知道要怎麼更新 @_@
執行apt-get upgrade wget看似有下載一些東西,但版本並沒有變
也還是一樣不能下載https
謝謝你~這招可行
其實我後來直接開browser下載後再把檔案上傳到linux了
但想寫安裝文件覺得應該找一下不這麼偏門的方法
※ 編輯: pttrAin (114.39.222.156), 08/02/2018 12:39:36
測試虛擬機在debian9執行wget是可以下載的 '_`
wget -V的版本是寫 GNU Wget 1.18 built on linux-gnu.
不知道怎麼把debian8的wget弄成這個版本…
※ 編輯: pttrAin (114.39.222.156), 08/02/2018 12:59:21
13F:推 GALINE: 不是wget軟體不支援,是你裝的wget不知為何不支援 XD 08/06 18:18
我後來直接用make install的方式裝GNU版本的wget就可以了
14F:→ GALINE: 看你是要讓什麼東西連,如果是本機可以考慮sqlite(免安裝) 08/06 18:22
15F:→ GALINE: 如果要提供網路服務可以考慮mysql或mariadb(這兩個是兄弟 08/06 18:23
16F:→ GALINE: 如果你有明確要用sqlserver的理由...也不是不行,但就真的 08/06 18:23
這個case是我要去連別人的資料庫,所以…沒有辦法 '_` 選擇權不在我
17F:→ GALINE: 會這麼做的人少,所以你能找到的說明或介紹或踩雷心得也少 08/06 18:24
18F:→ GALINE: 這裡有同樣經驗的人也不會太多... 08/06 18:24
微軟教學不能用的方式應該是因為作業系統位元的關係,還沒機會測試
但總之看起來是沒辦法用sqlsrv
後來用freetds弄好了
提供安裝步驟供參考(在乾淨的系統下開始做)
apt-update
apt-get install -y curl apt-transport-https
curl
https://packages.sury.org/php/apt.gpg > /etc/apt/trusted.gpg.d/php.gpg
echo "deb
https://packages.sury.org/php/ jessie main" >
/etc/apt/sources.list.d/php.list
apt-update
apt-get install -y php7.2 php7.2-dev php7.2-xml php7.2-sybase php7.2-odbc
apt-get install -y freetds-bin freetds-common
apt-get install -y tdsodbc odbcinst unixodbc unixodbc-dev
mv /etc/odbcinst.ini /etc/odbcinst.ini.bak
cp /usr/share/tdsodbc/odbcinst.ini /etc/
測試:
將以下文字複製貼上到 testdb.php ( 放在/var/www/html/ )
```
<?php
ini_set("display_errors", "On");
try {
//connection params 依實際要連線的server來修改連線參數
$dbCon = new PDO('odbc:Driver=FreeTDS; Server=ip; Port=portNumber;
Database=dbName; TDS_Version=8.0; ClientCharset=UTF-8', 'sa', 'sa');
//test query
$result = $dbCon->query('SELECT * FROM dbo.tableName');
//show the results
foreach ($result as $row)
{
print_r( $row );
print_r('</br>');
}
//close the connection
$dbCon = null;
} catch (PDOException $e) {
//show exception
echo $e->getMessage();
}
?>
```
19F:→ GALINE: 我不覺得微軟方案很坑,看過業務單位用Excel連sqlserver 08/06 18:25
20F:→ GALINE: 做樞紐分析表,當下感覺五體投地... 08/06 18:25
我蠻認同在linux上面用MS的東西很坑這件事…
像要在linux上用sqlsrv就是google不到完整可行的方案 :(
除此之外我近年都還算喜歡MS
※ 編輯: pttrAin (36.236.151.26), 08/14/2018 11:07:39