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 2,634건 13 페이지
  • RSS
기술자료 목록
2394
일반   4824  2020-06-05 21:44  
2393
일반   6860  2020-06-03 16:47  
2392
도메인   17113  2020-05-26 18:12 ~ 2020-05-31 19:16  
2391
Adobe   7967  2020-05-23 22:47 ~ 2020-06-07 01:08  
2390
MySQL   6635  2020-05-22 13:07 ~ 2020-05-22 16:05  
열람
MSSQL   21504  2020-05-12 19:46 ~ 2020-10-11 21:30  
2388
그누보드   7328  2020-04-17 17:14 ~ 2020-04-24 10:31  
2387
그누보드   5815  2020-04-04 18:58 ~ 2020-10-13 20:09  
2386
HTML   16290  2020-03-25 18:44 ~ 2021-09-23 18:51  
2385
그누보드   6510  2020-03-17 21:15 ~ 2020-03-17 21:16  
2384
영카트   4823  2020-03-17 19:13 ~ 2020-03-17 19:13  
2383
그누보드   35057  2020-03-17 19:08 ~ 2021-01-26 16:21  
2382
전자결제   7212  2020-03-15 13:27 ~ 2021-01-05 17:32  
2381
그누보드   7544  2020-03-14 12:03 ~ 2023-11-08 02:11  
2380
그누보드   7143  2020-03-09 20:44 ~ 2023-08-09 08:23  
2379
영카트   5108  2020-03-09 18:02  
2378
그누보드   5655  2020-03-06 01:26  
2377
PHP   6730  2020-03-04 14:51  
2376
그누보드   5281  2020-02-27 23:13  
2375
호스팅   6959  2020-02-26 22:32 ~ 2022-07-29 09:24  

검색

해피정닷컴 정보

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

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