Linux + PHP 7 + SQL Server (MSSQL) 연결 > 기술자료 | 해피정닷컴

Linux + PHP 7 + SQL Server (MSSQL) 연결 > 기술자료

본문 바로가기

사이트 내 전체검색

Linux + PHP 7 + SQL Server (MSSQL) 연결 > 기술자료

MSSQL Linux + PHP 7 + SQL Server (MSSQL) 연결

페이지 정보


본문

php7.2 부터는 mssql_connect 함수가 바로 지원되지 않습니다. 그래서 다른 방법으로 mssql을 사용 해야 합니다.
sqlsrv를 사용해서 mssql을 사용하는 방법입니다.


레드헷(Centos), 우분투 , SUSE , MAC OS , 윈도우에서 설치가능하고
PHP 7.2 이상부터 설치가능합니다.

PHP 4, 5에서는 기본 제공하는 mssql_connect 함수를 사용하고 ,
php 7에서는 mssql_connect 함수가 삭제되어, MicroSoft 에서 제공하는 프로그램을 설치해서 사용합니다.



1. Microsoft Drivers for PHP for SQL Server  가이드

https://github.com/Microsoft/msphpsql
https://www.microsoft.com/en-us/sql-server/developer-get-started/
https://docs.microsoft.com/eu-es/sql/connect/php/microsoft-php-driver-for-sql-server?view=sql-server-ver15



2. Linux OS 종류 및 버전 확인
# /etc/*-release


3-1. Ubuntu 16.04

sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql mssql-tools unixodbc-dev
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv



3-2. Ubuntu 18.04

----------------------------------------------------------------------------------------------------------------
※ 본 강좌는 정보공유 차원에서 정리되었습니다.
실제 운영서버에 설치해서 테스트를 진행했으나, 성공하지 못한 상황입니다.
계속적으로 업데이트를 진행할 예정이며, 온전하게 접속이 성공하면 본 메시지는 삭제될 예정입니다.
----------------------------------------------------------------------------------------------------------------
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list   [ 엔터 ]
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   983  100   983    0     0   2047      0 --:--:-- --:--:-- --:--:--  2043
OK

sudo apt-get update   [ 엔터 ]
Get:1 https://packages.microsoft.com/ubuntu/18.04/prod bionic InRelease [4,002 B]
...
Fetched 369 kB in 2s (190 kB/s)    
Reading package lists... Done

sudo ACCEPT_EULA=Y apt-get install msodbcsql17   [ 엔터 ]
Reading package lists... Done
Building dependency tree       
...
Need to get 1,471 kB of archives.
After this operation, 1,486 kB of additional disk space will be used.
Do you want to continue? [Y/n] y   [ 엔터 ]
Get:1 https://packages.microsoft.com/ubuntu/18.04/prod bionic/main amd64 libodbc1 amd64 2.3.7 [511 kB]
...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

sudo ACCEPT_EULA=Y apt-get install mssql-tools   [ 엔터 ]
Reading package lists... Done
Building dependency tree       
...
Unpacking mssql-tools (17.5.2.1-1) ...
Setting up mssql-tools (17.5.2.1-1) ...

------------------ 여기까지 테스트 완료 ------------------

sudo apt install php-pear   [ 엔터 ]
Reading package lists... Done
Building dependency tree       
...
Processing triggers for php7.2-fpm (7.2.24-0ubuntu0.18.04.6) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...

sudo pecl install pdo_sqlsrv   [ 엔터 ]

sudo apt-get install unixodbc-dev   [ 엔터 ]
Reading package lists... Done
Building dependency tree       
...
Need to get 28.5 MB of archives.
After this operation, 106 MB of additional disk space will be used.
Do you want to continue? [Y/n] y   [ 엔터 ]
Get:1 https://packages.microsoft.com/ubuntu/18.04/prod bionic/main amd64 unixodbc-dev amd64 2.3.7 [37.1 kB]
...
Setting up libtool (2.4.6-2) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...


3-3. CentOS 7  /  Red Hat

----------------------------------------------------------------------------------------------------------------
※ 본 강좌는 정보공유 차원에서 정리되었습니다.
실제 운영서버에 설치해서 테스트를 진행했으나, 성공하지 못한 상황입니다.
계속적으로 업데이트를 진행할 예정이며, 온전하게 접속이 성공하면 본 메시지는 삭제될 예정입니다.
----------------------------------------------------------------------------------------------------------------

sudo su
curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo | sudo tee /etc/yum.repos.d/mssql-server-2017.repo   [ 엔터 ]
sudo yum update   [ 엔터 ]
sudo ACCEPT_EULA=Y yum install -y msodbcsql mssql-tools unixODBC-devel   [ 엔터 ]
sudo yum groupinstall "Development Tools"   [ 엔터 ]
sudo pecl install sqlsrv   [ 엔터 ]
sudo pecl install pdo_sqlsrv   [ 엔터 ]
echo "extension=sqlsrv" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
echo "extension=pdo_sqlsrv" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`


4. sqlsrv 설정하기

php.ini 파일에 아래 내용을 추가해 줍니다.

extension=sqlsrv.so
extension=pdo_sqlsrv.so

또는 /etc/php/7.0/mods-available 위치에 sqlsrv.ini 파일을 만들고 위 내용을 넣고,
/etc/php/7.0/fpm/conf.d 와 같이 conf.d 폴더에 심볼릭 링크를 연결해도 됩니다.


5. php restart

5-1. Ubuntu 

// apache restart
sudo service apache2 restart

// ngix restart
sudo service nginx restart


5-1. CentOS



6. 사용해 보기

<?php
$serverName = "MSSQL_ip";
$connectionOptions = array(
    "Database" => "MSSQL_name",
    "Uid" => "MSSQL_id",
    "PWD" => "MSSQL_password"
);
//Establishes the connection
$conn = sqlsrv_connect($serverName, $connectionOptions);

if($conn) {
    echo "Connected!<br>";
} else {
    echo "sqlsrv_connect 접속 실패<br>";
}
 
$sql = " select * from 테이블 "; 
echo $sql."<br>";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    echo $row[0]."<br>";
}
sqlsv_free_stmt($stmt);
?>


참고자료
https://xetown.com/tips/878320
https://gyuha.tistory.com/504
https://stackoverflow.com/questions/34377338/linux-php-7-0-and-mssql-microsoft-sql#41773998
https://docs.microsoft.com/ko-kr/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15

댓글목록

등록된 댓글이 없습니다.


Total 74건 1 페이지
  • RSS
기술자료 목록
74
MSSQL   2739  2023-06-28 17:51 ~ 2023-06-28 17:53  
열람
MSSQL   21476  2020-05-12 19:46 ~ 2020-10-11 21:30  
72
MSSQL   10146  2018-05-09 22:36  
71
MSSQL   9741  2017-12-21 09:25 ~ 2017-12-21 09:27  
70
MSSQL   13191  2017-12-07 06:35  
69
MSSQL   9140  2017-12-05 23:56 ~ 2017-12-05 23:58  
68
MSSQL   22748  2017-12-04 09:08 ~ 2020-06-06 09:59  
67
MSSQL   11668  2017-12-03 07:14  
66
MSSQL   13730  2017-11-28 14:08  
65
MSSQL   9446  2017-11-26 05:27  
64
MSSQL   15854  2017-11-26 05:08  
63
MSSQL   15709  2017-11-03 10:45 ~ 2017-11-03 12:37  
62
MSSQL   19224  2017-10-29 23:12 ~ 2017-10-30 00:10  
61
MSSQL   30048  2017-09-22 18:05  
60
MSSQL   12394  2017-08-08 13:47  
59
MSSQL   18005  2017-04-02 13:19  
58
MSSQL   13280  2017-02-15 22:27  
57
MSSQL   31601  2016-12-12 20:58 ~ 2017-09-22 00:00  
56
MSSQL   15221  2016-11-25 01:06  
55
MSSQL   11122  2016-01-25 17:11  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.