jsPerfを自分専用の環境にクローンしてみる

おれ専用

外向けに公開したくないけどjsPerfでテストしたいな〜、と考えていた折、GitHubにリポジトリあるじゃん!ってなったのでcloneしてみた。ローカルコピーの案内もあったのでレッツトライ。

How to run a local copy of jsPerf for testing/debugging

mathiasbynens/jsperf.com

基本的に、GitHubのREADMEにあるローカルコピーの方法まんまです。出力にPHPが使われているので、Static HTTP Serverの類では動作しないことに注意してください。

PHPのビルトインウェブサーバーだとさっくり動いたりしないかな?

jsPerfのリポジトリをcloneする

% cd /path/to/jsperf-public
% git clone git://github.com/mathiasbynens/jsperf.com.git ./

サブディレクトリは作っちゃだめだそうで、ホストのルートになるようディレクトリを公開してください。

Databaseの作成

% mysql -u root -p -e 'CREATE DATABASE jsperf CHARACTER SET utf8';

つるん

Tableの作成

% mysql -u root -p jsperf < _tmp/database.sql

ぐわっ

Configの編集

% cp _inc/config.sample.php _inc/config.php
<?php

define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'username');
define('MYSQL_PASSWORD', 'password'); // FYI, that’s not the actual password
define('MYSQL_DATABASE', 'jsperf');

define('DOMAIN', 'yourdomain.example.com');
define('ASSETS_DOMAIN', 'yourdomain.example.com');
define('ADMIN_EMAIL', 'mail@example.com');

define('BROWSERSCOPE_API_KEY', '取得したAPIキー'); // Sorry, can’t show that here either

?>

http://www.browserscope.org/user/settingsで、BrowserscopeのAPIキーを取得

.htaccessを編集して、自分のドメインに設定する

RewriteCond %{HTTP_HOST} !^yourdomain.example.com|^a\.jsperf.com|^dev\.jsperf.com$ [NC]
RewriteRule ^(.*)$ http://jsperf.com%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^yourdomain.example.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*).css$ _css/main.css

RewriteCond %{HTTP_HOST} ^yourdomain.example.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)-([0-9]+).js$ _js/$1.js

RewriteCond %{HTTP_HOST} ^yourdomain.example.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*).js$ _js/$1.js

assetsわけてないから、単一ドメインに書き換えまくり。

Apacheを立ち上げておしまい

apacheとかバーチャルホスト類の設定は省きましたが、cloneしちゃえばphpMyAdmin並みには簡単に動作させられるので、うまいこと使ってみるとよさそうです。

元のjsPerfリポジトリの更新状況を反映したい場合は、githubでフォークしたリポジトリにフォーク元の変更をマージする - ぷろぐらまねがのような感じで、リモートを追加しておけばよいかと。

% git remote add fork_origin git://github.com/mathiasbynens/jsperf.com.git

Preparation codeのところに、ZeptoやjQMobi、自作ライブラリなどを追加すると良い感じです。author detailsのあたりを全部隠しちゃったりとか。コソコソ研究したいフェーズに大変よろしい感じ。