2017年3月23日木曜日

CentOS7向けにwkhtmltopdfをソースからビルド

wkhtmltopdfYUM経由でインストールしたwkhtmltopdfがよく分からないエラーを吐くので最新版(0.12.4)をビルドしたときの覚書。

環境: CentOS 7

よく分からないエラー

/usr/bin/xvfb-run: line 181: 21759 Segmentation fault      DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1

 

目次

  1. YUMバージョンをアンインストール
  2. Git cloneしてコンパイル
  3. インストール
  4. YUMバージョン(0.12.1)と比較して変わったところ
  5. 本番環境へインストール

 


1.YUMバージョンをアンインストール

今のバージョンを確認
# wkhtmltopdf --version

wkhtmltopdf 0.12.1

アンインストール
# yum remove wkhtmltopdf

 


2.Git cloneしてコンパイル

公式サイトを参考に

コンパイラ(開発ツール)をインストール
# yum groupinstall 'Development Tools'

GitHubからダウンロードする。ユーザーのホームディレクトリじゃないとコンパイル時にエラーになるらしい。
# cd
# git clone --recursive https://github.com/wkhtmltopdf/wkhtmltopdf.git

5分ぐらい掛かった。

今の最新バージョン0.12.4をチェックアウト
# cd wkhtmltopdf/
# git tag
# git checkout 0.12.4

セットアップ(?)
# sudo scripts/build.py setup-schroot-centos7

エラー。CentOSのオプションはなくなったらしい。

再度ビルド実行
# scripts/build.py posix-local -clean

エラー

Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /root/wkhtmltopdf/qt/mkspecs/linux-g++.

Qtに関連するライブラリが必要らしい。

YUMレポジトリからそれらしいのをインストール
# yum search qt
# yum install qt-devel qt-x11

再度ビルド実行
# scripts/build.py posix-local -clean

エラー

OpenSSL support cannot be enabled due to functionality tests!

OpenSSL系のビルドツールをインストール
# yum install openssl-devel

再度ビルド実行
# scripts/build.py posix-local -clean

エラー

fatal error: png.h: No such file or directory

fatal error: jpeglib.h: No such file or directory

pngとjpegのライブラリをインストール
# yum install libpng-devel libjpeg-turbo-devel

再度ビルド実行
# scripts/build.py posix-local -clean

大量のWarningが出て心配になる。

結構な時間が掛かる。

バイナリがstatic-build/posix-local/フォルダに出力される。

動作確認
# static-build/posix-local/wkhtmltox-0.12.4/bin/wkhtmltopdf https://dksg.co.jp test.pdf

 


3.インストール

コンパイルしたファイルを/usr/local/にコピー
# cp -r static-build/posix-local/wkhtmltox-0.12.4/* /usr/local/

/usr/local/libはデフォルトで未登録なので、読み込むように設定して再読込。
# echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf
# ldconfig

ライブラリが読み込まれているか確認
# ldconfig -v | grep libwk

動作確認
# /usr/local/bin/wkhtmltopdf http://dksg.co.jp test.pdf

 


4.YUMバージョン(0.12.1)と比較して変わったところ

試してみて気付いたところ

  • xvfb-runが必要なくなった
  • 「--viewport-size」が使えるようになった
  • bootstrap3のnav-justifiedが潰れる(多分バグ)

 


5.本番環境へインストール

ビルドしたときにtar.xzが作られているので、これを本番サーバーへコピーする。

解凍
# tar -xvf wkhtmltox-0.12.4_local-vm-centos7.dksg.jp.tar.xz

/usr/local/にコピー
# /bin/cp -r wkhtmltox-0.12.4/* /usr/local/

ライブラリの登録と読み込み → 確認
# echo /usr/local/lib > /etc/ld.so.conf.d/usr-local-lib.conf
# ldconfig
# ldconfig -v

動作確認
# /usr/local/bin/wkhtmltopdf http://dksg.co.jp test.pdf

システム上で確認出来たらYUMバージョンをアンインストール
# yum remove wkhtmltopdf

 

これで様子を見る。

 

< Related Posts >

2017年3月21日火曜日

Google Analytics認定資格を取得

google-analytics_certificationGoogle Analytics認定資格を取得したときの覚書。

参考サイト

Googleアナリティクスアカデミーの動画はほとんど英語なので、理解するのに時間がかかるかも。

 

Googleアナリティクスとは?を確認するのに有用な公式動画

 

用語集

用語 説明
セグメント アクセスを特定の条件で絞り込みカテゴリー分けする機能。
セグメントについて - アナリティクス ヘルプ
ディメンション データの属性。データの性質。セッションなどのアクセスそのものではなく「どんな」アクセスか。
例)市区町村、ブラウザ、言語
ディメンションと指標 - アナリティクス ヘルプ
マルチチャンネルレポート コンバージョン(CV)に至るまでの経路には、複数の接点(チャンネル:有料検索やディスプレイ広告など)があり、ユーザーはどのようなチェンネルを参照したかを解析
マルチチャネルについて - アナリティクス ヘルプ
アトリビューションモデル コンバージョン(CV)に至るまでの経路で、それぞれの経路がどの程度貢献したかを重み付けするルールセット
アトリビューション モデルの概要 - アナリティクス ヘルプ
アシストコンバージョン コンバージョン(CV)に至るまでの経路上の各接点
チャネルの貢献度を分析する - アナリティクス ヘルプ

Measurement Protocol

Google Analyticsへデータを送信するルールセット。ウェブやアプリ以外のSDKが提供されていない環境でも、このルールに従えばデータを収集することが可能。
Measurement Protocol - アナリティクス ヘルプ
テスト
(ウェブテスト)
A/Bテストを行う機能。テスト用ページを作成しておいて、指定した割合で訪問者にテストページを表示できる。
ウェブテストのメリット - アナリティクス ヘルプ
リマーケティング ユーザーリスト コンバージョンを達成する見込みが高く、再度アプローチしたいユーザー一覧。
AdWordsと連携前提。
Analyticsでユーザーリストを作成しておくと、AdWordsのターゲティングユーザーリストに表示される。
この機能に対応したAdWordsキャンペーンタイプを選択する必要がある。
リマーケティングの設定について - AdWords ヘルプ
ソリューションギャラリー セグメントなどの設定データをインポートできるツール。
他のアカウント(サイト)で作ったセグメント設定を共有するのに有用

 

試験自体は調べながら受験できるので難しくはない。失敗しても7日後に再挑戦できるので、自信を持って回答を選べるまで調べてから次へいくようにした方が勉強になると思う。

 

< Related Posts >

2017年3月20日月曜日

GoogleアナリティクスからGoogleタグマネージャに切り替え

google-tag-managerGoogleタグマネージャを使うと、Google AnalyticsやAdWordsのコンバージョンスクリプトをいちいち埋め込まずに管理できる。

最近は使いやすくなって本番運用に活用できる。

詳しくは公式サイトで。

 

出来ること

  • 任意のスクリプト(タグ)を任意のタイミング(トリガー)で実行することが出来る
  • トリガーを設定するときにCSSセレクタで指定できるので、IDがついてない要素もコードを修正せずにトリガーに出来る
  • プレビュー機能でどのトリガーが実行されたか分かる

 

特に便利だと思ったところ

  • 静的なリンクもコードを修正せずにGoogle Analyticsのイベントを発生させることが出来るから、特定要素のクリック数も簡単に計測可能。
  • プレビュー機能が素晴らしい

 

これからはGoogleタグマネージャを埋め込んでおけば間違いない。

 

< Related Posts >

Related Posts Plugin for WordPress, Blogger...

Blog Archives