Mac OS High Sierra (10.13.3) PHP + Oracle DB (oci8) 개발 환경 만들기
[사전 준비 사항]
우선, PHP5 / PHP7 설치는 방법은 생략하도록 합니다.
참고 포스트: Mac OS High Sierra에서 PHP5.6, 7.0 설치법 포스트 |
2018/01/04 - [Mac세상] - High Sierra(10.13) PHP 5.6, 7.0 멀티 설치하기 |
(해당 포스트는 oci8 연결 단계부터 작업 하도록 하도록 합니다.)
[옵션 사항들]
[옵션 - CodeIgnight 의 session를 위한 작업]
php.ini에 Session Path설정하기 |
session.save_path = "/tmp" |
[옵션 - .httpaccess 접근 설정]
httpd-vhosts.conf - 노란색 부분 필요 |
<VirtualHost *.:80> .. <Directory /Users/saltdoll/PhpstormProjects/sales.posbankusa.com> Require all granted AllowOverride ALL
</Directory> </VitualHost> |
<< High Sierra + PHP 7 + Orcacle(oci8) 연동하기 >>
(PHP Oracle 연동 테스트: 연동 실패시 화면)
$php -r "oci_connect();"
$ php -r "oci_connect();" PHP Fatal error: Uncaught Error: Call to undefined function oci_connect() in Command line code:1 Stack trace: #0 {main} thrown in Command line code on line 1
Fatal error: Uncaught Error: Call to undefined function oci_connect() in Command line code:1 Stack trace: #0 {main} thrown in Command line code on line 1 $ |
(PHP 확인하기)
$PHP --ini
$ php --ini Configuration File (php.ini) Path: /usr/local/etc/php/7.0 Loaded Configuration File: /usr/local/etc/php/7.0/php.ini Scan for additional .ini files in: /usr/local/etc/php/7.0/conf.d Additional .ini files parsed: (none) $ |
[ (1) Oracle Client 다운로드 및 설치 ]
- (64Bit) Basic, SDK는 필수
(옵션:sqlplus - 테스트용으로 유용하니 설치 추천)
http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
-> (64bit) Basic 과 SDK 다운로드
Installing Instant Client 12.2 on macOS
Instant Client 12.2 supports macOS High Sierra, Sierra and El Capitan.
(12.2가 High Sierra에 지원된다고 나오네요.)
다운로드한 파일을 폴더 생성해서 mv 시킵니다.
/usr/local/oracle/instantclient_64 ->생성 (경로는 다른곳이어도 괜찮습니다.)
(1) 폴더로 이동
Basic -> instantclient_64폴더
SDK폴더 -> instantclient_64폴더 아래 [sdk폴더]로 이동
[ Oracle Client와 OCI 폴더 형태 ] (참고: 파란색은 sqlplus 파일들)
(2) Sybolic Link 만들기
$ sudo ln -s /usr/local/oracle/instantclient_64/sdk/include/*.h /usr/local/include/
$ sudo ln -s /usr/local/oracle/instantclient_64/*.dylib /usr/local/lib/
$ sudo ln -s /usr/local/oracle/instantclient_64/*.dylib.12.1 /usr/local/lib/
$ sudo ln -s /usr/local/lib/libclntsh.dylib.12.1 /usr/local/lib/libclntsh.dylib
$ sudo ln -s /usr/local/oracle/instantclient_64/sdk/include/*.h /usr/local/include/ $ sudo ln -s /usr/local/oracle/instantclient_64/*.dylib /usr/local/lib/ $ sudo ln -s /usr/local/oracle/instantclient_64/*.dylib.12.1 /usr/local/lib/ $ sudo ln -s /usr/local/lib/libclntsh.dylib.12.1 /usr/local/lib/libclntsh.dylib (옵션) SQL Plus 설치시 $ sudo ln -s /usr/local/oracle/instantclient_64/sqlplus /usr/local/bin/ |
(sqlplus로 원격접속 TEST) sqlplus id/pw@ip:port/sid |
sudo sqlplus scott/tiger@192.168.20.100:1521/orcl |
[ (2) PHP OCI8 다운로드 / 빌드 / 설치 ]
http://pecl.php.net/package/oci8 (최신버전)
다운로드 폴더를 축을 풀고, /usr/local/oracle/instantclient_64 하위에 위치시킴
phpize로 configure파일 만들기 (autoconf를 찾을수 없다고 나온다)
$cd /usr/local/oracle/instantclient_64/oci8-2.1.8/oci8-2.1.8 $sudo phpize |
/usr/local/oracle/instantclient_64/oci8-2.1.8/oci8-2.1.8 ** 오류 화면 ** $ sudo phpize Password: Configuring for: PHP Api Version: 20151012 Zend Module Api No: 20151012 Zend Extension Api No: 320151012 Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script. |
우선적으로, autoconf를 설치해야 합니다.
autoconf 설치하기 |
$brew install autoconf |
Please delete these paths and run `brew update`. ==> Downloading https://homebrew.bintray.com/bottles/autoconf-2.69.high_sierra.bottle.4.tar.gz ######################################################################## 100.0% ==> Pouring autoconf-2.69.high_sierra.bottle.4.tar.gz ==> Caveats Emacs Lisp files have been installed to: /usr/local/share/emacs/site-lisp/autoconf ==> Summary 🍺 /usr/local/Cellar/autoconf/2.69: 71 files, 3.0MB Lee-ui-MacBook-Air:oci8-2.1.8 saltdoll$ |
autoconf 설치가 완료되면,
/usr/local/oracle/instantclient_64/oci8-2.1.8/oci8-2.1.8로 이동해서
"$sudo phpize"를 실행
configure 파일이 생성됩니다..
그 다음에, configure 를 설정하고, make 실행으로 컴파일, make install로 컴파일된 부분 설치.
$>./configure --with-oci8=instantclient,/usr/local/oracle/instantclient_64 $>make $>make install |
make 이후에, make test를 하면, make에 대한 검사를 하는데, 시간이 많이 걸립니다. (비추천) |
$ make install Installing shared extensions: /usr/local/Cellar/php70/7.0.26_18/lib/php/extensions/no-debug-non-zts-20151012/ |
마지막으로 php.ini에 oci8.so 설정을 추가합니다.
/usr/local/etc/php/7.0/vi php.ini |
extension 단어가 많은곳에 가서 마지막 줄에 아래 한줄 입력해주고 저장한다. extension=oci8.so |
아파치 재시작하면,
성공 -_- !
[phpinof() 확인 화면]
출처: http://bestofsky.com/185 [맥 Mac] MAC + PHP + OCI8 연동 대서사시
(참고: https://gist.github.com/krisanalfa/09b765bb95012cd36fbd )
'Mac세상' 카테고리의 다른 글
iTerm2 macOS용 Terminal (0) | 2018.10.31 |
---|---|
Chrome 69 에서 flash가 안될때, 특정사이트 flash 사용 권한 추가하기 (0) | 2018.09.12 |
Macbook 노트북 베터리 사이클 battery cycle count (사용횟수) (0) | 2018.04.04 |
Mac OS 하이 시에라(High Sierra) 클린 설치 USB 만들기 + Mojave(모하비) + Big Sur (빅서) 추가 (0) | 2018.04.03 |
mac terminal에서 sudo+명령에서 Operation not permitted가 발생할때. (0) | 2018.01.05 |
High Sierra(10.13) PHP 5.6, 7.0 멀티 설치하기 (0) | 2018.01.04 |
Manually remove CleanMyMac 3 (0) | 2017.03.16 |
macOS Sierra 업그레이드 하면, 변화되는 설정 apache (0) | 2016.10.09 |
(로그인하지 않으셔도 가능)