作者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/cn.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