Bluemix를 활용하여 나만의 웹 애널리틱스 사용하기 1편

728x90



이번 시간에 만들어볼 것은 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>


업로드 이후 블루믹스 대시보드에서 APP이 정상적으로 돌아가고 있는지 확인합니다. 별 문제 없이 실행되고 있으면 준비가 모두 완료된 것입니다.


STEP2. MySQL을 APP과 연결하기

다시 Bluemix 카탈로그로 들어와서 mysql을 검색해줍니다. 만약에 출력이 되지 않는다면 아래 화면처럼 bluemix experimental service를 눌러서 추가 검색을 실행해주면 데이터 및 분석 파트에서 mysql을 찾을 수 있습니다. 아이콘을 눌러줍니다.



설정창이 뜨는데 서비스 이름은 임의의 이름을 해주고 연결 대상을 아까 우리가 했던 APP에 연결시켜 줍니다. 저는 CF PUSH할때 denverowa3라 했기 때문에 해당 이름으로 연결을 시켜주었습니다.



경고창이 뜨는데 말 그대로 연결되었기 때문에 재시작을 해야된단 얘기로 앱 스테이징 재 시작을 눌러줍시다. 



그러면 이렇게 APP이 실행되는 모습을 확인할 수 있습니다.

 


앞서 창에서 sql 서비스에서 신임 정보 보기를 클릭합니다. 그러면 정보가 뜨게 될 텐데 이따가 설치할 때 필요하기 때문에 복사를 해둬야 합니다.



이 신임 정보 복사까지 완료되었으면 이제 세팅 준비 및 실제 활용 단계까지 남은 상태입니다. 한 80% 정도 온 것 같네요. 그러면 다음 편에서 마저 마무리 하도록 하겠습니다.



[ 시리즈 보기 ] 

1편 보러가기

2편 보러가기



728x90