投稿

11月, 2015の投稿を表示しています

静的WordPress向けNginxのfastcgi_cache設定

イメージ
WordPressで開発した静的ウェブサイトを公開するためにnginxの設定を見直したときの覚書。環境: CentOS 6.7, nginx 1.8.0, PHP 5.6.15fastcgi_cacheはPHP-FPMなどのバックエンドの結果をキャッシュする機能。Nginxの設定ファイルの記述はWordPressの公式サイトを参考にした。Nginx | WordPress Codex設定ファイルをGistにアップしたのでこっちを見ながらの方が分かりやすいかも。Nginx Configuration Files for WordPress | Gist目次FastCGIキャッシュ機能を有効に Nginxの設定ファイルを準備(キャッシュなし) キャッシュ機能が有効な設定ファイル Gzipの設定ファイル1.FastCGIキャッシュ機能を有効にNginx全体の設定なのでhttpディレクティブに記述する必要がある。
# cd /etc/nginx/
# less nginx.confhttp {
    # FastCGI Cache
    fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=WORDPRESS:100m inactive=1d;
    fastcgi_cache_key "$scheme$request_method$host$request_uri";
    fastcgi_cache_use_stale error timeout invalid_header http_500;
}
ゾーン名: WORDPRESS
共有メモリ使用サイズ: 100M
保持期間: 1日間2.Nginxの設定ファイルを準備(キャッシュなし)各サイトごとの設定
# cd conf.d/共通の設定ファイルを作って、各サイトでincludeさせる。まずはアクセス制限用設定ファイルを作成
# mkdir global
# vi global/wordpress_restrictions.conf#
# Global Restrictions for WordPress site
# Designed to be included in any server {} block.</p>
#loc…

TCP/IPとUNIX Socketの接続でどれくらい違うか

イメージ
NginxからPHP-FPMの接続とPHP-FPMからMariaDBの接続をTCP/IPとSocketで比較してみた。環境: CentOS 6.7, nginx 1.8.0, PHP 5.6.15, MariaDB 10.0.22基本的な概念は下記記事が分かりやすい。nginx - 調べなきゃ寝れない!と調べたら余計に寝れなくなったソケットの話 - QiitaリクエストはWindows上のab.exe(Apache Bench)からMac上のVMware Fusionの仮想マシン(CentOS)にあるWordPressに対して行う。まずはPHP-FPMもMariaDBもTCP/IP接続で計測C:> .\ab.exe -n 50 -c 5 http://dev.hoge.or.jp/1回目:14.03 [#/sec]
2回目:14.00 [#/sec]
3回目:19.92 [#/sec]
平均: 15.98 [#/sec]PHP-FPMへの接続をUNIX Socketに変えてみる。
PHP-FPMの設定
# less /etc/php-fpm.d/www.conf;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/www.sockNginxの設定
# less /etc/nginx/conf.d/hoge.conf#fastcgi_pass  127.0.0.1:9000;
fastcgi_pass   unix:/var/run/php-fpm/www.sock;サービス再起動
# /etc/rc.d/init.d/php-fpm restart
# /etc/rc.d/init.d/nginx restartsockファイルをnginxから読み取れるように権限を変更しないと「502 Bad Gateway」になる
# chown nginx.www /var/run/php-fpm/www.sock計測実行1回目:18.35 [#/sec]
2回目:17.64 [#/sec]
3回目:14.01 [#/sec]
平均: 16.66 [#/sec]
ちょっとだけ速くなった。次はMariaDBへの接続をUNIX Socketに変えてみる。YUM経由でインストールした場合は/var/lib/mysql/mysql.sockがデフォルトらしい。…

アプリを別のアカウントへ移行(譲渡)

イメージ
Androidアプリ、iPhoneアプリを別アカウントへ移行させたときの覚書。目次Androidアプリを移行iOSアプリを譲渡1.Androidアプリを移行公式ヘルプを参考に別のデベロッパー アカウントへのアプリの移行 - Google Play デベロッパー ヘルプ「デベロッパー コンソールの登録に使用した取引 ID」が少し分かりにくい。Googleペイメントでデベロッパー登録したときの取引ID。別料金もかからずすぐに反映された。2.iOSアプリを譲渡下記サイトが参考になる。iTunes - App Storeに上がっているアプリを譲渡する方法 - Qiita。。。一週間経っても移行先のアカウントにアプリが表示されないため、サポートに問い合わせてみた。その後2回ぐらいサポートに督促のメールを送って、申請から約1ヵ月後に移行先アカウントにアプリが表示された。メンバーセンターのApp IDsも移行される。「Provisioning Profiles」は新規作成する。別料金はかからなかった。< Related Posts >Titaniumアプリでプッシュ通知(Push Notification)【iOS版】Titaniumで作成したアプリをApp Storeに申請してみた

titaniumでビルドしたAPKファイルを解凍して中身をチェック

イメージ
titaniumでビルドしたAPKの中身がどうなっているか調査したときの覚書。環境: Titanium SDK 3.5.1.GA参考サイトAndroid apk の解析 - Qiitaandroid リバースエンジニアリングのメモ | 開発メモ@uehiapkファイルはzip形式でアーカイブされているだけなので、unzipで解凍できる。
$ mkdir temp
$ cd temp
$ cp ../project/build/android/bin/hoge.apk ./
$ unzip hoge.apkassetsディレクトリに画像やフォントファイルがそのまま出力されている。ソースコードはclasses.dexに入っているらしい。これを変換するツールをダウンロードする。dexからjarに変換するdex2jar
pxb1988/dex2jar | GitHubそのjarをclassに変換するjad
JAD Java Decompiler Download Mirrorダウンロードしたdex2jarを解凍。実行可能に
$ unzip dex2jar-2.0.zip
$ chmod +x dex2jar-2.0/*.sh実行
$ ./dex2jar-2.0/d2j-dex2jar.sh classes.dexエラーException in thread "main" java.lang.UnsupportedClassVersionError: com/googlecode/dex2jar/tools/Jar2Dex : Unsupported major.minor version 51.0JDK 1.7でないとダメみたい。前の記事などを参考にJDK 1.7にして再実行。
$ ./dex2jar-2.0/d2j-dex2jar.sh classes.dexdex2jar classes.dex -> ./classes-dex2jar.jarjarを展開
$ jar -x < classes-dex2jar.jarダウンロードしたjadを解凍して実行可能に
$ unzip jad158g.mac.intel.zip
$ chmod +x jad変換実行
$ ./jad -d output -r -s java **/*.classoutputディレクトリに読める…

【Titanium】JDK 1.7だとエラーになるのでJDK 1.6をインストール

イメージ
Titaniumの開発でAndroidデバイスにインストールして動作確認しようとしたらエラーになったときの覚書。環境:Mac OS X El Capitan 10.11.1, Titanium SDK 5.0.2.GAエラーメッセージ
$ appc ti build -p android -T device[ERROR] Titanium requires JDK 1.6 when building on Mac OS X.
[ERROR] You can download it from http://appcelerator.com/jdk-osx
[ERROR] If you still see this message, then you may need to set the JAVA_HOME to help Titanium locate the JDK.
[ERROR] To see which JDKs Titanium finds, run "appc ti info --types jdk --output json".参考になったフォーラムの投稿記事Titanium requires JDK 1.6 when building on Mac OS X | Community Q&A結局JDKをインストールするしかないみたい。公式サイトからダウンロードするJava for OS X 2015-001インストールされた場所を確認
$ ls /Library/Java/JavaVirtualMachines/1.6.0.jdk       jdk1.7.0_80.jdk1.7と切り替えたいので下記記事が参考になった。MacでのJAVA_HOME設定 - Qiitajava6に切り替えてみる。
$ export JAVA_HOME=`/usr/libexec/java_home -v 1.6`確認
$ echo $JAVA_HOME/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Hometitaniumコマンドを使って確認
$ ti info --types jdkデフォルトで1.6を使うように設定しておく
$ less ~/.bash_profile# Use JDK 1.6
ex…

TV SlideViewの代替アプリ「sMedia TV Suite」を試す

イメージ
TV SlideViewのプラグインZenFone 2 Laserに未対応で「お出かけ転送」出来ないので、代わりのDTCP-IP対応アプリを探したときの覚書。自宅の環境nasne(ナスネ)BDZ-EW510 | ブルーレイディスクレコーダー | ソニーAtermWG1800HP | 製品一覧 | AtermStationまずは昔使っていたTwonky Beamを試してみた(700円)。転送途中でなぜかWifiが切断される。
→ あとでルーターの設定とかいじってたら直った。他にもDTCP-IP対応アプリがあったので購入してみた。撮りためたTV番組を視聴 sMedio TV Suite - Google Play の Android アプリ3つとも使ってみて、簡単な比較表を作ってみた。TV SlideViewTwonky BeamsMedio TV Suite値段500円700円900円動画操作CMスキップ
(たまに失敗する)30秒スキップ
10秒戻し30秒スキップ
10秒戻し
スキップが安定しないお出かけ転送レコーダーがSony製ということもあり転送が安定してる
転送はバックグラウンドで行うので他の作業ができるBDZ-EW510から転送した動画の音飛びがひどい
nasneとの連携は問題なし
転送中はアプリを切り替えてはダメBDZ-EW510との接続がうまくいかないことが多い
nasneとの連携は問題なし
転送中はアプリを切り替えてはダメSDカード保存××○使い勝手使いやすいシンプルで分かりやすい無駄なページが多くて使いにくい感想録画番組を削除する目的で使用中悪くはない「SDカード保存」が決めてでこれを使っているsMedio TV SuiteのUI改善を期待< Related Posts >ASUS ZenFone 2 Laserを購入Aterm MR03LN+激安SIMで自宅LAN構築。もう回線工事とかいらないWindows 8 + nasne + REGZA TV + Android + iPadで快適テレビ生活

PhpStorm10.0でTitanium開発用コード補完設定

イメージ
PhpStorm 10.0にアップグレードしてTitanium用コード補完を設定したときの覚書。環境(WindowsからMac上のソースコードにアクセス)Windows: PhpStorm 10.0, Node.js 4.2.1
Mac: Node.js 0.10.37目次設定からダウンロードできない tsdtypingsをインストール PhpStorm側で設定 Globalを個別に設定1.設定からダウンロードできないPhpStormのSettings → Languages & Frameworks → JavaScript → Librariesから「Download...」しようとしてもtitaniumがなくなっている。。。最近はTSDというTypeScirptで書かれた書式設定用パッケージマネージャーを使うらしい。Home | DefinitelyTypedDefinitelyTyped/tsd | GitHub2.tsdtypingsをインストールMacのコンソール上でtsdをインストール
$ sudo npm install tsd -gtitanium用書式設定を検索
$ tsd query titaniumインストール
$ tsd install titanium --savetsd.jsonとtypingsディレクトリが作成された。package.jsonとnode_modulesディレクトリの関係と同じ。<2016/03/22 追記>
tsdがdeprecatedになったのでtypingsに変更
$ sudo npm remove tsd --global
$ sudo npm install typings --global検索
$ typings search --name titanium既存のtsdからアップグレード
$ rm -rf typings
$ typings init --upgrade
$ typings install
$ rm tsd.json3.PhpStorm側で設定Librariesの設定画面で「Add...」からtypingsディレクトリを選択する。エディタ内でTiとか打ってコード補完されるか確認4.Globalを個別に設定ただL()がUndefinedだと怒られる。前は設定で直った気がするけど、今回はダメな…