자유게시판

제목 centos7 + php7 + nginx + ci 3.1.4 + mssql2005
글쓴이 개락 작성시각 2017/04/13 15:36:55
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 13545   RSS

머리가 나쁘면 손발이 고생이라고 생각보다 간단하게 처리 가능한걸 오늘도 시간을 무지막지하게 허비하네요.

처음에 테스트한 서버는 일반 PC 에 설치한 버전이고

성공한서버는 클라우드플랫폼에 개인용으로 만들어논 버전입니다.

둘다 centos7 + php7 + nginx는 동일한 환경입니다.

다른부분도 테스트가 더 필요하긴 하지만 일단 초보자 기준으로 연결까지 성공한걸 토대로 말씀드리자면..

ci db 드라이버중에 mssql이 있습니다 근데 php7부터는 mssql_connect() 이 함수가 삭제되고 다른 함수들로 교체 교체되었습니다.

https://github.com/bcit-ci/CodeIgniter/issues/4074

이글을보면 ci3에는 이미 sqlsrv와 pdo가 있다고 나와있습니다. 어떻게 하는지도 알려주면 좋을텐데...

검색해보다 아래글을 발견했습니다.

http://stackoverflow.com/questions/34377338/linux-php-7-0-and-mssql-microsoft-sql

결론은 제일 밑에 echo로 extextion등록은 안하셔도 될꺼같아요..;

centos7내용을 그대로 따라 설치 하고 마지막 extention 까지 등록합니다.

하고나면

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/sqlsrv' - /usr/lib64/php/modules/sqlsrv: cannot open shared object file: No such file or directory in Unknown on line 0PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_sqlsrv' - /usr/lib64/php/modules/pdo_sqlsrv: cannot open shared object file: No such file or directory in Unknown on line 0

php.ini 마지막줄에 extension= 두줄이 들어가는데 실제 파일 생성은 뒤에 so가 붙어서 들어갑니다.

.so를 붙혀서 수정을 하고 php를 다시 실행해도 오류가 나서 결국엔 두줄은 주석처리했습니다.

쉘상에서 sqlcmd로 DB서버를 원격으로 연결해서 정상 연결이 된다면 CI에서도 연결되실껍니다.

테스트서버 php버전 5.4로 떨군거 다시 올려서 테스트 해봐야겠네요..

참고로 5.4로 내려서 mssql쓰면 한글이 깨져나오는데 7에서 sqlsrv는 한글도 정상적으로 표시됩니다.

 다음글 간만에 어그로... apache or nginx (7)
 이전글 본의아니게 fax 발송 서버에 ddos(?는 아닌거 같... (3)

댓글

한대승(불의회상) / 2017/04/13 15:40:23 / 추천 0
좋은 정보 감사합니다.
개락 / 2017/04/13 15:47:50 / 추천 0

매번 넋두리에 질문만 하다가....

앞으로도 문의드릴게 많이 있겠지만...

혹시나 도움되는 정보가 있을때면 글 작성할해두겠습니다..^^;

변종원(웅파) / 2017/04/13 15:51:00 / 추천 0
고생하셨습니다. ^^
개락 / 2017/04/13 16:28:42 / 추천 0