티스토리 뷰
http://stackoverflow.com/questions/34377338/linux-php-7-0-and-mssql-microsoft-sql
위글에 ubuntu16.04에 해당하는부분을 그대로 따라 진해하면 됨
대신에 추가로 설치해야하는 패키지가 있음
sudo apt-get install php-dev php-pear
mssql2005 설치된 서버가 2008 R2 이상이상이라면 연결하는데 크게 문제가 안되겠지만..
나처럼 2003을 쓰는경우는 TLS버전의 차이로 우분투에서 sqlcmd실행 시 연결이 안됨...
이문제 찾는데 하루를 허비함..
user@webserver:/# sqlcmd -d database -S databaseserver,50000 -U sa -P password -Q 'select top 1 id from table'
이런식으로 연결하면
TCP Provider: Error code 0x2746. Client unable to establish connection.
위 글을 보면 문제가 server2003을 지원하지 않아서 발생하는거라고 함.. TLS1.0
그래서 나도 2008서버에 연결 해봄 연결 매우 잘됨..
위 글 제일 하단에 보면 mssql2005도 서버 2008 R2의 경우엔 연결이 된다고 함..
그리고
It is impractical to upgrade windows on our servers now, but we managed to resolve the issue for now by switching to the php7.1-sybase driver and using pdo_dblib.
pdo_dblib를 이용해서 연결 가능하다고 함..
드라이버 설치 apt-get install php7.0-sybase
일단 PHP페이지에서 테스트 함
$db = new PDO("dblib:host=111.111.111.111:1433;dbname=디비명", "계정", "비번");
//echo $db;
$STH = $db->query('SELECT TOP 100 * FROM 테이블');
# setting the fetch mode
$STH->setFetchMode(PDO::FETCH_OBJ);
# showing the results
while($row = $STH->fetch()) {
echo $row->컬럼. "/";
echo "<br>";
}
연결 됨..
이걸 CI에 어떻게 넣어야하나 고민했는데
$db['MSDB'] = array(
'dsn' => '',
'hostname' => 'dblib:host=111.111.111.111:1433',
'username' => '',
'password' => '',
'database' => '',
'dbdriver' => 'pdo',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
위 처럼 넣으니 연결 됨..
'serverSide > Linux' 카테고리의 다른 글
[ubuntu 16.04] mariaDB 10.0 외부접속 설정 시 10061 에러 (1) | 2017.09.06 |
---|---|
우분투 CIFS PHP 업로드 시 권한 (0) | 2017.05.10 |
CentOS7 + PHP7 + nginX + MSSQL2005 + CodeIgniter3.1.4 (0) | 2017.04.14 |
우분투 16.04 NGINX 안정 최신버전 설치 (0) | 2017.04.10 |
우분투 16.04 에디트플러스 연결 안될때 (0) | 2017.04.10 |