이번 시간에 만들어볼 것은 Bluemix를 활용한 Web Analytics(애널리틱스) 사용입니다. 네이버와 구글이 각각 네이버 애널리틱스와 구글 애널리틱스를 제공하고 있습니다만 어쨌든 기업으로 자신의 웹 사이트 통계 정보가 불만을 토로하는 사람도 있는 편이죠. 그래서 이번 예제에서는 OWA라고 해서 Open Web Analytics를 사용합니다. 이번에 필요한건 블루믹스 계정과, 웹 프로그래밍 기본 지식 정도입니다. 쉬운 편이죠. 원문은 바로가기에서 참조하시기 바랍니다.
STEP1. OWA 파일을 Bluemix로 PUSH하기
우선 OWA 배포처(바로가기)를 가서 파일을 다운받은 뒤 적당한 위치에 풀어줍니다.
압축을 풀어준 폴더로 가서 manifest.yml을 메모장이나 기타 편집기로 엽니다. 혹은 없으면 아래와 같은 코드로 파일을 하나 만들어서 아까 압축을 푼 폴더의 root 상에 저장해줍니다.
applications: #use your own application name here - name: [임의의 이름] memory: 256M instances: 1 buildpack: https://github.com/joshisa/cf-php-build-pack.git
그리고 PHP5 이후부터는 mysql이 기본 데이터베이스가 아니기 때문에 별도로 mysql을 연결시키는 문항을 반드시 추가 시켜줘야 합니다. (이거 몰랐다가 저도 진짜 3일 동안 삽질ㅜ ) 설명하도록 하겠습니다. 제가 찾은 원문은 바로가기에서 확인 가능합니다. 우선 폴더의 root 상에 .bp-config라는 폴더를 만들어 줍니다. 윈도에서는 만들어 지지 않을 수 있기 때문에 도스에서 만들어야 할 수도 있습니다. 도스로 만들 경우는 아래와 같습니다.
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\IBM_ADMIN>cd c:\압축이 풀린 폴더 c:\압축이 풀린 폴더>md .bp-config
그리고 아래의 코드가 들어간 options.js를 생성해서 .bp-config 폴더 안에 넣어줍니다. 넣지 않으면 PHP가 mysql을 인식하지 못해서 무시무시하고 재수없는 오류들을 뿜어내게 됩니다.
{ "PHP_EXTENSIONS": ["mysql","mysqli","curl","gd"] }
이 밥맛 없는 오류들... 심지어 브라우저 상에선 뜨지도 않고, Bluemix 로그에서 확인할 수 있었음.
08:13:05 httpd | [Thu Jan 12 08:13:04.989123 2017] [proxy_fcgi:error] [pid 759:tid 140038012630784] [client 75.126.23.243:59223] AH01071: Got error 'PHP message: PHP Fatal error: Call to undefined function mysqli_connect() in /home/vcap/app/htdocs/plugins/db/owa_db_mysql.php on line 107\n', referer: https://owa1.mybluemix.net/install.php?owa_action=base.installCheckEnv
이 다음에는 폴더를 CF를 통해서 PUSH 해줘야 합니다. PUSH 방법은 바로가기에서 참조가 가능합니다. 아무튼 CMD를 켜서 CF PUSH를 통해서 파일을 업로드합니다.
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\IBM_ADMIN>cf push [지정한 이름] -p [업로드 할 주소 (예 - c:\owa) ]
그러면 이렇게 파일이 모두 업로드 될 것 입니다.
Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Users\IBM_ADMIN>cf push denverowa3 -p c:\owa3 Creating app denverowa3 in org Dankook University / space dev student as esprit@ espriter.net... OK Creating route denverowa3.mybluemix.net... OK Binding denverowa3.mybluemix.net to denverowa3... OK Uploading denverowa3... Uploading app files from: C:\owa3 Uploading 1.8M, 872 files Done uploading OK Starting app denverowa3 in org Dankook University / space dev student as esprit@ espriter.net... Downloading noop-buildpack... Downloading php_buildpack... Downloading go_buildpack... Downloading nodejs_buildpack... Downloaded nodejs_buildpack Downloading python_buildpack... Downloaded php_buildpack Downloading sdk-for-nodejs... Downloaded go_buildpack Downloading liberty-for-java... Downloading dotnet-core... Downloaded java_buildpack Downloading ruby_buildpack... Downloading sdk-for-nodejs_v3_8-20161006-1211... Downloading staticfile_buildpack... Downloaded liberty-for-java Downloading binary_buildpack... Downloading liberty-for-java_v3_4_1-20161030-2241... Downloading swift_buildpack... Downloading dotnet-core_v1_0_1-20161005-1225... Downloaded staticfile_buildpack Downloading liberty-for-java_v3_5-20161114-1152... Downloaded binary_buildpack Downloaded swift_buildpack Downloaded xpages_buildpack_v1_2_1-20160913-103 Successfully created container Downloading app package... Staging... Installing HTTPD Downloaded [file:///tmp/buildpacks/2819fdea344ded43d3461c67a8992764/dependencies /https___pivotal-buildpacks.s3.amazonaws.com_concourse-binaries_httpd_httpd-2.4. 20-linux-x64.tgz] to [/tmp] Installing PHP PHP 5.5.34 Downloaded [file:///tmp/buildpacks/2819fdea344ded43d3461c67a8992764/dependencies /https___pivotal-buildpacks.s3.amazonaws.com_concourse-binaries_php_php-5.5.34-l inux-x64-1459869133.tgz] to [/tmp] Finished: [2017-01-12 05:18:27.682674] Exit status 0 Uploading droplet, build artifacts cache... Uploaded build artifacts cache (109B) Uploaded droplet (45.9M) Uploading complete Destroying container Successfully destroyed container 1 of 1 instances running App started OK App denverowa3 was started using this command `$HOME/.bp/bin/start` Showing health and status for app denverowa3 in org Dankook University / space d ev student as esprit@espriter.net... OK requested state: started instances: 1/1 usage: 1G x 1 instances urls: denverowa3.mybluemix.net last uploaded: Thu Jan 12 05:18:10 UTC 2017 stack: cflinuxfs2 buildpack: php 4.3.10 state since cpu memory disk deta ils #0 running 2017-01-12 02:18:52 PM 0.0% 16.3M of 1G 133.7M of 1G C:\Users\IBM_ADMIN>
STEP2. MySQL을 APP과 연결하기
다시 Bluemix 카탈로그로 들어와서 mysql을 검색해줍니다. 만약에 출력이 되지 않는다면 아래 화면처럼 bluemix experimental service를 눌러서 추가 검색을 실행해주면 데이터 및 분석 파트에서 mysql을 찾을 수 있습니다. 아이콘을 눌러줍니다.
설정창이 뜨는데 서비스 이름은 임의의 이름을 해주고 연결 대상을 아까 우리가 했던 APP에 연결시켜 줍니다. 저는 CF PUSH할때 denverowa3라 했기 때문에 해당 이름으로 연결을 시켜주었습니다.
경고창이 뜨는데 말 그대로 연결되었기 때문에 재시작을 해야된단 얘기로 앱 스테이징 재 시작을 눌러줍시다.
그러면 이렇게 APP이 실행되는 모습을 확인할 수 있습니다.
앞서 창에서 sql 서비스에서 신임 정보 보기를 클릭합니다. 그러면 정보가 뜨게 될 텐데 이따가 설치할 때 필요하기 때문에 복사를 해둬야 합니다.
이 신임 정보 복사까지 완료되었으면 이제 세팅 준비 및 실제 활용 단계까지 남은 상태입니다. 한 80% 정도 온 것 같네요. 그러면 다음 편에서 마저 마무리 하도록 하겠습니다.
[ 시리즈 보기 ]
'CLOUD' 카테고리의 다른 글
Bluemix 첫 시작, Hello, World 웹 페이지 올리기 (0) | 2017.01.13 |
---|---|
Bluemix의 OpenWhisk를 써보자 2편 (0) | 2017.01.13 |
Bluemix를 활용하여 나만의 웹 애널리틱스 사용하기 2편 (0) | 2017.01.12 |
Bluemix를 활용하여 5분 안에 채팅방 만들기 (2) | 2017.01.12 |
Bluemix 및 여러 API를 활용한 비행기 위치 추적하기 3편 (0) | 2017.01.10 |
Bluemix 및 여러 API를 활용한 비행기 위치 추적하기 2편 (0) | 2017.01.10 |