현재 라라벨로 진행중인 프로젝트에 다른 시스템과 연동하면서 MS-SQL 을 연결하여 작업할 일이 생겼다.
Ubuntu 16.04
Laravel 5.6
PHP 7.4
PHP 관련 설치 및 설정
sqlsrv 를 설치하려면 phpize 가 필요해서 아래와같이 설치해준다.
sudo apt install php7.4-dev
이후 필수 구성요소 설치를 위해 아래와 같이 설치
Microsoft ODBC Driver for SQL Server 설치(Linux)
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
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
php 드라이버 설치
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
sudo su
printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/7.4/mods-available/sqlsrv.ini
printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/7.4/mods-available/pdo_sqlsrv.ini
exit
sudo phpenmod -v 7.4 sqlsrv pdo_sqlsrv
라라벨 설정
DB 정보는 .env 파일과 config/database.php 파일에서 설정할수 있다.
.env 설정 추가
DB_MSSQL_CONNECTION=sqlsrv
DB_MSSQL_HOST=10.0.0.123
DB_MSSQL_PORT=1433
DB_MSSQL_DATABASE=dbname
DB_MSSQL_USERNAME=username
DB_MSSQL_PASSWORD=userpwd
conf/database.php
'mssql' => [
'driver' => 'sqlsrv',
'host' => env('DB_MSSQL_HOST', '127.0.0.1'),
'port' => env('DB_MSSQL_PORT', '1433'),
'database' => env('DB_MSSQL_DATABASE', 'forge'),
'username' => env('DB_MSSQL_USERNAME', 'forge'),
'password' => env('DB_MSSQL_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],
위 두 설정이면 DB 를 사용가능하다.
이때 charset 을 utf8로 해주지 않으면 한글이 깨질수 있으니 주의가 필요하다.
이제 모델에서 DB 연결 작업을 해주면 controller 에서 어떤 DB 를 사용하든지 신경쓰지 않고 비즈니스로직에만 집중할수 있다.
Models/Board.php
protected $connection = 'mssql';
Controller
$board = Board::all();
컨트롤러에서 다른 모델과 동일하게 사용가능하다.
한글도 깨지지 않고 리턴되어 오는것 확인!!
'개발 > PHP 라라벨' 카테고리의 다른 글
DataTables 상태값 유지 (데이터 소스를 서버 측 처리 ) (1) | 2021.03.15 |
---|---|
[오류사항] Trying to access array offset on value of type int (1) | 2021.03.10 |
PHP 7.1 > 7.4 로 업그레이드 (0) | 2021.03.10 |
라라벨 daily 로그 적용 (0) | 2021.01.29 |
라라벨 비밀번호 재설정 - email 보내기 & 변경 (0) | 2020.11.30 |