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,641건 13 페이지
  • RSS
기술자료 목록
2401
일반   4792  2020-06-05 21:44  
2400
일반   6811  2020-06-03 16:47  
2399
도메인   17021  2020-05-26 18:12 ~ 2020-05-31 19:16  
2398
Adobe   7929  2020-05-23 22:47 ~ 2020-06-07 01:08  
2397
MySQL   6583  2020-05-22 13:07 ~ 2020-05-22 16:05  
열람
MSSQL   21461  2020-05-12 19:46 ~ 2020-10-11 21:30  
2395
그누보드   7295  2020-04-17 17:14 ~ 2020-04-24 10:31  
2394
그누보드   5798  2020-04-04 18:58 ~ 2020-10-13 20:09  
2393
HTML   16242  2020-03-25 18:44 ~ 2021-09-23 18:51  
2392
그누보드   6479  2020-03-17 21:15 ~ 2020-03-17 21:16  
2391
영카트   4790  2020-03-17 19:13 ~ 2020-03-17 19:13  
2390
그누보드   33445  2020-03-17 19:08 ~ 2021-01-26 16:21  
2389
전자결제   7170  2020-03-15 13:27 ~ 2021-01-05 17:32  
2388
그누보드   7508  2020-03-14 12:03 ~ 2023-11-08 02:11  
2387
그누보드   7089  2020-03-09 20:44 ~ 2023-08-09 08:23  
2386
영카트   5081  2020-03-09 18:02  
2385
그누보드   5619  2020-03-06 01:26  
2384
PHP   6691  2020-03-04 14:51  
2383
그누보드   5254  2020-02-27 23:13  
2382
호스팅   6900  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.