tag:blogger.com,1999:blog-80761004962937337032024-03-20T14:52:08.895+09:00ZONOTEノートです。メモ書きです。
<a href="http://isann0330.tumblr.com/">tumblr</a>でもメモしています。
<a href="http://isann.hatenablog.com/">HatenaBlog</a>に引越しました。markdown がいいの。isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.comBlogger81125tag:blogger.com,1999:blog-8076100496293733703.post-29343621045653658962013-02-08T12:45:00.001+09:002013-02-08T12:45:11.063+09:00[Other]itermとか<br />
<br />
# 通知すること<br />
通知って大事だよね。<br />
誰かがTwitterでメンションくれた、DMくれた、Facebookでメッセージ届いたとか。<br />
開発者としてはサーバでこけたときも通知してほしい。<br />
そんな通知の話。<br />
<br />
## レシピ<br />
用意するアプリとか。通知センターあるよね。<br />
<br />
- Growl<br />
- Boxcar<br />
- iterm 2<br />
<br />
## iterm 2 で任意文字列検索して Growl 通知、Boxcar 転送<br />
ビルド終わったよ、tail -f しててエラーでたよ、とかを通知するやり方。これ、残念なところはリモートサーバのログをSSH接続した上で make してたり tail してるところ。make はまあいいけど、tail はちょっとね…。完全に切り離す方法あるのかな?教えてほしいです。<br />
<br />
[参考URL](http://ascii.jp/elem/000/000/562/562062/)<br />
<br />
1. iterm 2 の 設定<br />
<br />
Preferences -> Profiles -> Advanced -> Triggers -> Edit で検索文字列設定して Action を Send Growl Alert<br />
<br />
1. Growl プラグインBoxcar.growlView導入<br />
<br />
[こちら](http://boxcar.io/growl)からダウンロードして実行、インストール<br />
<br />
1. iOS 側の設定(iPad mini)<br />
<br />
- Boxcar アプリインストール<br />
- サインイン(アカウント作ってなかったらサインアップ)<br />
- Growl のサービスを追加<br />
<br />
1. Growl の設定<br />
<br />
- 環境設定 -> 表示 -> Action で Boxcar のアカウントを入力、プレビューで連携確認<br />
- アプリケーション -> iTerm -> アプリケーションの表示スタイル -> Actions -> Boxcar 選択<br />
<br />
<br />
<br />
<br />
<br />
<br />
<ul class="ul1"><ul class="ul2">
</ul>
</ul>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-18271254671948606342012-12-11T23:05:00.004+09:002012-12-18T15:57:50.718+09:00[nodejs]nodejs インストール<h5>概要</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
nodejs をソースからインストールする。
</div>
<div class="section" id="id2" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>インストール</h5>
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">nodejs</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">ソースからビルドします。普通にDLして解凍して configure して
make して make install する。
</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external"
href="http://blog.livedoor.jp/yoko_net/archives/51896571.html"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://blog.livedoor.jp/yoko_net/archives/51896571.html</a>
</div>
</dd>
</dl>
<ol class="last arabic simple" style="margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">wget <a
class="reference external"
href="http://nodejs.org/dist/v0.8.15/node-v0.8.15.tar.gz"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://nodejs.org/dist/v0.8.15/node-v0.8.15.tar.gz</a>
</li>
<li style="margin: 0px; padding: 0px;">tar -zxvf node-v0.8.15.tar.gz</li>
<li style="margin: 0px; padding: 0px;">cd node-v0.8.15</li>
<li style="margin: 0px; padding: 0px;">./configure</li>
<li style="margin: 0px; padding: 0px;">make</li>
<li style="margin: 0px; padding: 0px;">sudo make install</li>
</ol>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">npm 入れる</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
node-v0.8.15 だったらはいっとった
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">coffee-script 入れる</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
グローバルでインストールしとく
</div>
<ol class="last arabic simple" style="margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">npm install coffee-script -g</li>
</ol>
</dd>
</dl>
</li>
</ul>
</div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-23586860476622888182012-12-11T23:03:00.005+09:002012-12-18T16:01:46.652+09:00[other]nginx インストールと設定
<h5>概要</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
nginx をリバースプロキシとして使ってみる。
</div>
<div class="section" id="id2" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>インストール</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
パッケージからとソースからビルドの2通りある。
</div>
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">パッケージからインストール</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
注意は任意のモジュールをインストールできない。必要なモジュールがあるならソースから。 基本的に<a class="reference external"
href="http://wiki.nginx.org/InstallJa"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://wiki.nginx.org/InstallJa</a> 参照で。
設定での注意としては、/etc/nginx/nginx.conf が設定ファイルだけど中で include /etc/nginx/conf.d/<a
href="http://192.168.20.53/wwmdocs/nginx.html#id3"
style="color: #ce5c00; margin: 0px; padding: 0px;"><span class="problematic" id="id4"
style="margin: 0px; padding: 0px;">*</span></a>.conf;
みたいに 設定ファイルが読み込まれてる。/etc/nginx/nginx.conf を必死に設定しても設定かわらないときはこのあたりを疑ってみても。 設定、後勝ち??
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">ソースからインストール</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<ol class="first arabic" style="margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
wget <a class="reference external" href="http://nginx.org/download/nginx-1.2.2.tar.gz"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://nginx.org/download/nginx-1.2.2.tar.gz</a>
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
tar -zxvf nginx-1.2.2.tar.gz
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
cd nginx-1.2.2
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">yum -y install openssl-devel pcre-devel libxml2-devel
libxslt-devel patch
</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
環境によるけど
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">git clone <a class="reference external"
href="https://github.com/yaoweibin/nginx_tcp_proxy_module.git"
style="color: #ce5c00; margin: 0px; padding: 0px;">https://github.com/yaoweibin/nginx_tcp_proxy_module.git</a>
</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
websocket をリバースプロキシする nginx_tcp_proxy_module をモジュール追加するので <a
class="reference external"
href="http://d.hatena.ne.jp/shim0mura/20120118/1326916953"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://d.hatena.ne.jp/shim0mura/20120118/1326916953</a>
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
patch -p1< nginx_tcp_proxy_module/tcp.patch
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">./configure</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;">./configure --prefix='/usr/local/nginx' \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_xslt_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--add-module=nginx_tcp_proxy_module/</pre>
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
make
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
sudo make install
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
vi /etc/init.d/nginx
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<div class="highlight-none" style="margin: 0px; padding: 0px;">
<div class="highlight"
style="background-color: #eeeeec; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 2px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 2px; margin: 0.8em 0px; padding: 3px;">
<pre style="padding: 0px;">#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
#nginx="/usr/sbin/nginx"
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
#NGINX_CONF_FILE="/etc/nginx/nginx.conf"
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
# make required directories
user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
options=`$nginx -V 2>&1 | grep 'configure arguments:'`
for opt in $options; do
if [ `echo $opt | grep '.*-temp-path'` ]; then
value=`echo $opt | cut -d "=" -f 2`
if [ ! -d "$value" ]; then
# echo "creating" $value
mkdir -p $value && chown -R $user $value
fi
fi
done
}
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
make_dirs
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
</pre>
</div>
</div>
</div>
</blockquote>
</li>
</ol>
<ul class="last simple" style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">設定ファイルは /usr/local/nginx/conf/nginx.conf にある</li>
</ul>
</dd>
</dl>
</li>
</ul>
</div>
<div class="section" id="http" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>HTTP リバースプロキシ</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
HTTP リバースプロキシとして使うための設定。/ のアクセスを upstream backend のいずれかに転送する。 proxy_pass の <a class="reference external"
href="http://backend/"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://backend</a> は
upstream の backend と対応しいている。
</div>
<div class="highlight-none" style="margin: 0px; padding: 0px;">
<div class="highlight"
style="background-color: #eeeeec; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 2px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 2px; margin: 0.8em 0px; padding: 3px;">
<pre style="padding: 0px;">#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream backend {
server xxxx.xxxx.xxxx.xxx:port;
server xxxx.xxxx.xxxx.xxx:port;
server xxxx.xxxx.xxxx.xxx:port;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root /usr/share/nginx/html;
#index index.html index.htm;
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
</pre>
</div>
</div>
</div>
<div class="section" id="websocket" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>WebSocket リバースプロキシ</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
WebSocket 通信(というかTCP/IP??)をリバースプロキシする。 socket.io なアプリレベルで気をつけとくのは、例えば以下の設定でHTTP通信で 60001 に割り振られた時、 javascript で
io.connect(‘<a class="reference external" href="http://host:port/"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://host:port/</a>‘) するときに、ポートは 60001
にしておくこと。 リバースプロキシだからといって ポート 80 で再度割り振らせると正常に動作しなくなる。
</div>
<div class="highlight-none" style="margin: 0px; padding: 0px;">
<div class="highlight"
style="background-color: #eeeeec; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 2px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 2px; margin: 0.8em 0px; padding: 3px;">
<pre style="padding: 0px;">#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
tcp {
upstream websockets {
server 127.0.0.1:60001;
server 127.0.0.1:60002;
server 127.0.0.1:60003;
check interval=3000 rise=2 fall=5 timeout=1000;
}
server {
listen 0.0.0.0:80;
server_name _;
tcp_nodelay on;
proxy_pass websockets;
}
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8888;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#location / {
# root html;
# index index.html index.htm;
#}
location /websocket_status {
check_status;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root html;
#}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
</pre>
<div>
<br/></div>
</div>
</div>
</div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-80744459277606017812012-11-29T23:15:00.001+09:002012-12-18T16:04:53.373+09:00[other]phantomjs インストール<div class="section" id="id1" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>
インストール</h5>
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">PhantomJS 入れる</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<ol class="first arabic" style="margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
sudo yum install gcc gcc-c++ make git openssl-devel freetype-devel fontconfig-devel
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
git clone git://github.com/ariya/phantomjs.git
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
cd phantomjs
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
git checkout 1.7
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">./build.sh –jobs 1</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
build.sh たたくと次のエラーになった
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<div class="highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;">gstreamer-app-0.10 not found
make[1]: *** [WebCore/Makefile.WebKit] Error 2
make[1]: Leaving directory `/home/dev/work/tmp/phantomjs-rpms/BUILD/phantomjs-1.5.0/src/qt/src/3rdparty/webkit/Source</pre>
</div>
</div>
</blockquote>
<div style="margin-bottom: 0.5em; padding: 0px;">
yum -y install gstreamer* で gstreamer のパッケージ全部つっこんどく<a
class="reference external" href="http://tmcosmos.org/linux/centos/co5.html"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://tmcosmos.org/linux/centos/co5.html</a>
</div>
<div style="margin-bottom: 0.5em; padding: 0px;">
もう一度 build.sh たたく
</div>
<div class="last" style="margin-bottom: 0.5em; padding: 0px;">
ビルドが成功した
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
/path/to/phantomjs/bin/phantomjs が本体なのでこれを PATH の通ったところにおいとく
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
sudo mv phantomjs/ /usr/local/src/
</div>
</li>
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
ln -s /usr/local/src/phantomjs/bin/phantomjs /usr/local/bin/phantomjs
</div>
</li>
</ol>
<div class="last" style="margin-bottom: 0.5em; padding: 0px;">
※ sudo yum groupinstall ‘Development tools’ ‘Additional Development’ あれやこれやとこれもたたきました
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">参考URL</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<ul class="first last" style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">公式ドキュメント</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external" href="http://phantomjs.org/build.html"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://phantomjs.org/build.html</a>
</div>
</dd>
</dl>
</li>
</ul>
</dd>
</dl>
</li>
</ul>
</div>
<div class="section" id="id2" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>
文字化け問題</h5>
<div style="background-color: white; font-family: Verdana, Arial, sans-serif; line-height: 22.383333206176758px; margin-bottom: 0.5em; padding: 0px; text-align: justify;">
CentOS6.2 の環境で文字化けエラー
</div>
</div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-63905403784455161232012-11-29T23:12:00.003+09:002012-12-18T16:07:10.186+09:00[linux]munin のインストールと設定<div class="section" id="id1" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>
概要</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
munin は、munin と munin-node にわかれる。munin は munin-node を束ねるサーバで、ノードと通信しノードの情報をグラフ化しWEBページとしてそれを参照できるようにする。
muni-node はターゲットサーバのリソースを監視する。
</div>
</div>
<div class="section" id="munin-master" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>
munin-master インストール</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
基本的にパッケージインストールでOK
</div>
<div class="highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;">[root@dlp ~]# wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6
[root@dlp ~]# rpm --import RPM-GPG-KEY-EPEL-6
[root@dlp ~]# rm -f RPM-GPG-KEY-EPEL-6
[root@dlp ~]# vi /etc/yum.repos.d/epel.repo
# 以下の内容で新規作成
[epel]
name=EPEL RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/
gpgcheck=1
enabled=0
# 上記リポジトリを使用してインストールする場合は、以下のようにコマンド入力
[root@dlp ~]# yum --enablerepo=epel install [パッケージ名]</pre>
</div>
<div style="margin-bottom: 0.5em; padding: 0px;">
ただ、EPEL リポジトリからパッケージをインストールする場合、CentOS のバージョンに注意する。下記の参考URLにあるような RPM-GPG-KEY-EPEL-5 は RPM-GPG-KEY-EPEL-6
と読み替えるといい。
</div>
<div class="highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;">[root@master ~]# yum --enablerepo=epel -y install munin munin-node # EPELからインストール
[root@master ~]# vi /etc/munin/munin.conf
# 60行目:ホスト名に変更
[master.server.world]
address 127.0.0.1
use_node_name yes
[root@master ~]# vi /etc/munin/munin-node.conf
# 29行目:自ホスト名に変更
host_name master.server.world
[root@master ~]# rm /var/www/html/munin/.htaccess
[root@master ~]# vi /etc/httpd/conf.d/munin.conf
<Directory /var/www/html/munin/>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 10.0.0.0/24
</Directory>
[root@master ~]# /etc/rc.d/init.d/httpd restart
Stopping httpd:[ OK ]
Starting httpd:[ OK ]
[root@master ~]# /etc/rc.d/init.d/munin-node start
Starting Munin Node:[ OK ]
[root@master ~]# chkconfig munin-node on</pre>
</div>
<div style="margin-bottom: 0.5em; padding: 0px;">
これで munin-master サーバと同じ munin-node のリソース情報は吸い上げられるようになった
</div>
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
参考URL
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">munin インストール手順</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external" href="http://www.submit.ne.jp/821"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://www.submit.ne.jp/821</a>
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">munin インストール手順</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external"
href="http://www.server-world.info/query?os=CentOS_6&p=munin"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://www.server-world.info/query?os=CentOS_6&p=munin</a>
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">EPEL リポジトリ追加(CentOS5 についてなので注意)</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external"
href="http://www.server-world.info/query?os=CentOS_5&p=first_conf&f=5"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://www.server-world.info/query?os=CentOS_5&p=first_conf&f=5</a>
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">munin のBasicAuth外す</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external"
href="http://blog.livedoor.jp/takeshiyako/archives/51812971.html"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://blog.livedoor.jp/takeshiyako/archives/51812971.html</a>
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">CentOS6 への munin インストール手順(EPEL リポジトリ)</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external"
href="http://serverfault.com/questions/401504/munin-on-centos-6-missing-perl-module-compat-5-8-8"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://serverfault.com/questions/401504/munin-on-centos-6-missing-perl-module-compat-5-8-8</a>
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">munin.conf の設定</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external"
href="http://blog.promob.jp/wed/2009/04/munin-2.html"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://blog.promob.jp/wed/2009/04/munin-2.html</a>
</div>
</dd>
</dl>
</li>
</ul>
</div>
</blockquote>
</li>
</ul>
</div>
<div class="section" id="munin-node" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>
munin-node インストール</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
munin-master とほぼ同じ。パッケージからいれる。
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<div class="highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;">[root@dlp ~]# wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6
[root@dlp ~]# rpm --import RPM-GPG-KEY-EPEL-6
[root@dlp ~]# rm -f RPM-GPG-KEY-EPEL-6
[root@dlp ~]# vi /etc/yum.repos.d/epel.repo
# 以下の内容で新規作成
[epel]
name=EPEL RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/
gpgcheck=1
enabled=0
[root@master ~]# yum --enablerepo=epel -y install munin-node # EPELからインストール
[root@master ~]# vi /etc/munin/munin-node.conf
allow ^XXX\.XXX\.XXX\.XXX$(サーバのIP)
を
allow ^127\.0\.0\.1$
の下辺りに追記しておきます。
[root@master ~]# /etc/rc.d/init.d/munin-node start
Starting Munin Node:[ OK ]
[root@master ~]# chkconfig munin-node on</pre>
</div>
</div>
</blockquote>
<div style="margin-bottom: 0.5em; padding: 0px;">
ここで 自分のWAN側IPアドレスはわかる <a class="reference external" href="http://www.cman.jp/network/support/go_access.cgi"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://www.cman.jp/network/support/go_access.cgi</a>
</div>
<div style="margin-bottom: 0.5em; padding: 0px;">
munin-master サーバ側で次になればOK:
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<div class="highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;"># telnet [ノードのIPアドレス] 4949
Connected to 略
Escape character is '^]'.
# munin node at backup</pre>
</div>
</div>
</blockquote>
<div style="margin-bottom: 0.5em; padding: 0px;">
munin-master サーバの /etc/munin/munin.conf で上記のノードを追記 :
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<div class="highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;">[GroupName;XXX.XXX.XXX]
address XXX.XXX.XXX
use_node_name yes</pre>
</div>
</div>
</blockquote>
<div style="margin-bottom: 0.5em; padding: 0px;">
[] の中を適当にしてると動かなかくて、FQDN にしろって記述があったので IPアドレスにしたら動いた GroupName は 2.0.6 では上記の通りでちゃんと設定できた
</div>
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
参考URL
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">munin-node 設定</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external" href="http://www.submit.ne.jp/821"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://www.submit.ne.jp/821</a>
</div>
</dd>
</dl>
</li>
</ul>
</div>
</blockquote>
</li>
</ul>
</div>
<div class="section" id="cgi" style="margin: 1.7em 0px 0px; padding: 0px;">
<h5>
CGI設定</h5>
<div style="margin-bottom: 0.5em; padding: 0px;">
munin の CGI は munin-cgi-graph と munin-cgi-html があるみたいで、 グラフの画像生成とHTMLそれぞれを動的に生成するかどうか設定できる。
</div>
<div style="margin-bottom: 0.5em; padding: 0px;">
以下はグラフ。グラフは詳細な時間を見ようとすると CGI の設定が必須みたい。cron だとグラフをクリックして遷移した先のHTMLで画像がリンク切れになってる。
</div>
<div style="margin-bottom: 0.5em; padding: 0px;">
あと、EPEL リポジトリからパッケージインストールするとなのかは不明だが、munin-cgi-graph と munin-cgi-html がどこにもなかった…。
なのでパッケージはインストールされているがソースをビルドした。
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<div class="highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;">[root@master ~]# yum --enablerepo=epel -y install \
rrdtool perl-rrdtool perl-Module-Buildrrdtool\
perl-Module-Build \
perl-Time-HiRes \
perl-Digest-MD5 \
perl-HTML-Template \
perl-File-Copy-Recursive \
fcgi fcgi-devel perl-FCGI perl-CGI \
perl-IO-Socket-INET6 \
perl-Net-SNMP \
perl-Log-Log4perl \
perl-Net-Server
wget http://sourceforge.net/projects/munin/files/stable/2.0.6/munin-2.0.6.tar.gz
tar xfz munin-2.0.6.tar.gz
cd munin-2.0.6
vi Makefile
CONFIG = dists/redhat/Makefile.config
make</pre>
</div>
</div>
</blockquote>
<div style="margin-bottom: 0.5em; padding: 0px;">
したらば /path/to/munin-2.0.6/build/master/_bin/munin-cgi-graph にできてる
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<div class="highlight-python" style="margin: 0px; padding: 0px;">
<pre style="padding: 0px;">vi /etc/munin/munin.conf
# 下記を変更か追記
graph_strategy cgi
cgiurl_graph /munin-cgi/munin-cgi-graph
cp /path/to/munin-2.0.6/build/master/_bin/munin-cgi-graph /var/www/cgi-bin/
vi /etc/httpd/conf.d/munin.conf
# ScriptAlias 追記
ScriptAlias /munin-cgi/ /var/www/cgi-bin/
<Directory /var/www/cgi-bin>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory></pre>
</div>
</div>
</blockquote>
<div style="margin-bottom: 0.5em; padding: 0px;">
これで graph が CGI で動作するようになった
</div>
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<div class="first" style="margin-bottom: 0.5em; padding: 0px;">
参考URL
</div>
<blockquote style="margin: 1em; padding: 0px;">
<div style="margin: 0px; padding: 0px;">
<ul style="list-style-type: square; margin: 1.5em; padding: 0px;">
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">munin ソース</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external"
href="http://pocketstudio.jp/log3/2012/08/23/munin_setup_howto_for_rhel6/"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://pocketstudio.jp/log3/2012/08/23/munin_setup_howto_for_rhel6/</a>
</div>
</dd>
</dl>
</li>
<li style="margin: 0px; padding: 0px;">
<dl class="first docutils" style="margin: 0px; padding: 0px;">
<dt style="margin: 0px; padding: 0px;">munin のCGI設定</dt>
<dd style="margin: 0.4em 0px 1em 1.2em; padding: 0px;">
<div class="first last" style="margin-bottom: 0.5em; padding: 0px;">
<a class="reference external"
href="http://pocketstudio.jp/log3/2012/02/09/how_to_use_munin-cgi-graph/"
style="color: #ce5c00; margin: 0px; padding: 0px;">http://pocketstudio.jp/log3/2012/02/09/how_to_use_munin-cgi-graph/</a>
</div>
<div>
<br/></div>
</dd>
</dl>
</li>
</ul>
</div>
</blockquote>
</li>
</ul>
</div>
<div class="sidebar"
style="background-color: white; float: right; font-family: Verdana, Arial, sans-serif; font-size: 0.9em; line-height: 22.383333206176758px; margin: 0px; padding: 0px; width: 20em;">
</div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-15947063643695020132012-11-22T18:33:00.001+09:002012-11-22T18:37:12.290+09:00[other]mac に ssh で接続、ssh を使って git clone する<h5>■mac に ssh 接続する</h5>
<a href="http://d.hatena.ne.jp/dice-t/20071115/1195187150">http://d.hatena.ne.jp/dice-t/20071115/1195187150</a>
システム環境設定 → 共有 → リモートログイン<br />
(チャレンジレスポンスになってる。パスワード、鍵認証も sshd_config 触るとできるみたいだけどやってないのでわからん)<br />
<br />
次で接続できることを一応確認しとく。<br />
<br />
Windows の teraterm でホストに mac のIPアドレス、TCPポート 22、SSH2 、<br />
ユーザ名に設定して接続許可したユーザ、「チャレンジレスポンス認証を使う」、パスワードにmacのパスワードを入力。<br />
<br />
<h5>■git で公開用リポジトリを作る</h5>
<br />
<a href="http://d.hatena.ne.jp/takihiro/20090325/1237990865">http://d.hatena.ne.jp/takihiro/20090325/1237990865</a><br />
<br />
<h5>■クライアント で git clone する</h5>
<br />
git clone ssh://user@host:port/Users/xxxxx/xxxxx/project.git<br />
<br />
IntelliJ IDEA なら<br />
<br />
Git Repository URL : [ssh://user@host:port/Users/xxxxx/xxxxx/project.git]<br />
Parent Directory : [git clone 保存先ディレクトリ]<br />
<br />
を設定すると Directory Name はたぶん勝手にはいる。<br />
私は下みたいになった。<br />
<br />
Directory Name : [project]isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-78659619847996684132012-11-02T02:39:00.003+09:002012-11-02T02:39:53.754+09:00[sphinx]はじめにやることメモ<a href="http://isann.blog2.fc2.com/blog-entry-290.html">http://isann.blog2.fc2.com/blog-entry-290.html</a><br />
<br />
<a href="http://isann.blog2.fc2.com/blog-entry-293.html">http://isann.blog2.fc2.com/blog-entry-293.html</a><br />
<br />
<h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■sphinxって何?</h4>
<br />ここ見たらだいたいわかります。<br /><a href="http://sphinx-users.jp/" target="_blank" title="http://sphinx-users.jp/">http://sphinx-users.jp/</a><br /><br />わかってるからそう言うのでしょうか。<br />はじめはまったくわかりませんでした。<br /><br />要は、テキストファイルにwiki記法みたいな簡易マークアックアップの「reStructredText」で<br />記述し、これをプログラムを使って綺麗なHTMLなどにする、ということです。<br /><br />で、「reStructredText」はディレクティブというのがあって、<br />これを使ってブロック図を書いたりシーケンス図を書いたり、<br />「reStructredText」標準の機能に機能追加していく感じです。<br /><br />Sphinxというとpython、<br />という感じですがpythonを知らないとsphinxを使えないことはまったくありません。<br /><br />知らないといけないのは、「reStructredText」の記述方法とSphinxの使い方です。<br /><br /><h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■sphinxインストール</h4>
<br />ではさっそくインストールします。<br />pythonのインストールはexeキックするだけです。<br />easy_installは<a href="http://isann.blog2.fc2.com/blog-entry-278.html" target="_blank" title="このへん">このへん</a>を参考にして下さい。<br /><br /><a href="http://sphinx-users.jp/gettingstarted/install_windows.html" target="_blank" title="http://sphinx-users.jp/gettingstarted/install_windows.html">http://sphinx-users.jp/gettingstarted/install_windows.html</a><br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
easy-install sphinx
</pre>
<br />これだけです。<br /><br /><h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■プロジェクトを作る</h4>
<br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
sphinx-quickstart
</pre>
<br />質問には全部デフォルトで答えました。<br /><br />以下だけ入力します。<br /><br /><ul><br />
<li>プロジェクト名</li>
<br />
<li>バージョン番号</li>
<br />
<li>著者の名前</li>
</ul>
<br /><br /><h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■diagインストール</h4>
<br />http://blockdiag.com/ja/blockdiag/introduction.html#id2<br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
easy_install pillow
easy_install blockdiag
</pre>
<br /><br /><h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■sphinxにdiagを埋め込む</h4>
<br />上記だけでsphinxでblockdiagを使えるわけじゃなく、<br />上記はテキストファイル「diag」などからpng形式の画像データを作成するものです。<br />埋め込むには「sphinxcontrib-blockdiag」が必要です。<br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
easy_install sphinxcontrib-blockdiag
</pre>
<br /><br /><h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■confの設定</h4>
<br /><pre class="prettyprint lang-py" style="white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
<span class="pun">./</span><span class="pln">sphinx</span><span class="pun">-</span><span class="pln">project</span><span class="pun">/</span><span class="pln">conf</span><span class="pun">.</span><span class="pln">py</span>
<span class="com"># Enabled extensions</span>
<span class="pln">extensions </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="str">'sphinxcontrib.blockdiag'</span><span class="pun">]</span>
<span class="com"># Fontpath for blockdiag (truetype font)</span>
<span class="pln">blockdiag_fontpath </span><span class="pun">=</span><span class="pln"> </span><span class="str">'C:\Windows\Fonts\msgothic.ttc'</span></pre>
<br />ちょっとpythonファイルに設定を追記します。<br />pythonファイルもただのテキストファイルです。<br /><br /><h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■ディレクティブ</h4>
<br /><pre class="prettyprint lang-py" style="white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
<span class="pun">..</span><span class="pln"> blockdiag</span><span class="pun">::</span><span class="pln"> </span><span class="pun">[</span><span class="pln">diag</span><span class="pun">-</span><span class="pln">filename</span><span class="pun">]</span>
</pre>
<br />例えばこんな感じで使えるようになります。<br /><br /><h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■トライアンドエラー的な…</h4>
<br /><br /><ul>
<li>blockdiagのpngファイルで日本語が文字化け<br /><br />これは文字化け、なんだけれど要はデフォルトでは日本語フォント使ってなくて、<br />変なUTF-8の文字見つかったけどなににしたらわからーん!って状態。<br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
rem set /P font=フォントのパスを指定して下さい。(日本語フォントがよい):
set font="C:\Windows\Fonts\msgothic.ttc"
set /P diag=diagファイルのパスを指定して下さい。:
blockdiag -f %font% %diag%
pause
</pre>
<br />こうやって日本語フォント指定してやればいける。<br />でもちょっとノード内のフォントが上きれるんだよな…。これ原因不明です。</li>
<br />
<li>Sphinxのドキュメントで日本語が文字化け<br /><br />これも上と同じような問題。<br />結局CSSのfont-familyの記述によって読み込まれているフォントが日本語非対応のフォントということらしい。<br /><br /><a href="http://blog1.erp2py.com/2012/01/sphinx.html" target="_blank" title="http://blog1.erp2py.com/2012/01/sphinx.html">http://blog1.erp2py.com/2012/01/sphinx.html</a><br /><転載><br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
[Pythonフォルダ] → [Lib] → [site-packages] → [Sphinx-1.1.2-py2.7.egg] → [sphinx]
sphinxdoc.css_t ファイルをコピー&ペーストする
[sphinx] → [themes] → [sphinxdoc] → [static] フォルダーに sphinxdoc.css_t ファイルがあるのでコピーして、ドキュメントの [_static] フォルダに貼り付ける。
ペーストした sphinxdoc.css_t ファイルをテキストエディタで開き、font-family を変更する。
sphinxdoc.css_t には font-family の指定が4カ所あるので変更する。私は次のように変更した。
bodyタグ指定、viewcode-backクラス指定
変更前
font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
'Verdana', sans-serif;
変更後
font-family: 'Arial', 'Helvetica', sans-serif;
cite, code, ttタグ指定、preタグ指定
変更前
font-family: 'Consolas', 'Deja Vu Sans Mono',
'Bitstream Vera Sans Mono', monospace;
変更後
font-family: 'Consolas', 'Courier New', monospace;
make html コマンドで、htmlファイルを再作成する。
Lucida Grandeとか悪さをしているみたいです。></pre>
</li>
</ul>
<ul><br /></ul>
<h4 style="background-color: white; border-bottom-width: 2px; border-color: #708090; border-left-width: 5px; border-style: solid; border-width: 0px; font-size: large;">
■shpinxインストールの補足的な</h4>
<br />Sphinxの導入は下記あたりで記事にしました。<br /><a href="http://isann.blog2.fc2.com/blog-entry-290.html" target="_blank" title="http://isann.blog2.fc2.com/blog-entry-290.html">http://isann.blog2.fc2.com/blog-entry-290.html</a><br /><a href="http://isann.blog2.fc2.com/blog-entry-292.html" target="_blank" title="http://isann.blog2.fc2.com/blog-entry-292.html">http://isann.blog2.fc2.com/blog-entry-292.html</a><br /><br />これにわかったことなどを追加しながら少し整理してみます。<br /><br />sphinxのインストールに関しては<a href="http://isann.blog2.fc2.com/blog-entry-290.html" target="_blank" title="http://isann.blog2.fc2.com/blog-entry-290.html">http://isann.blog2.fc2.com/blog-entry-290.html</a>そのままです。<br />pypiに登録されていますので、easy_installから簡単にインストールして、<br />そのままプロジェクトを作ります。<br />sphinx-quickstart コマンドはデフォルトで実行したディレクトリ配下にファイルを作成しますので、<br />自分で /usr/hoge/shpinx_doc/hogedoc みたいなディレクトリを作成してそこで実行するとよいと思います。<br /><br />diagシリーズはブロック図は汎用性もあるのであるとかなりいいと思います。<br /><br />easy_install sphinxcontrib-blockdiag<br /><br />これに追加でシーケンス図を僕はよく使うので入れています。<br />easy_install sphinxcontrib-seqdiag<br /><br /><a href="http://blockdiag.com/ja/seqdiag/sphinxcontrib.html" target="_blank" title="http://blockdiag.com/ja/seqdiag/sphinxcontrib.html">http://blockdiag.com/ja/seqdiag/sphinxcontrib.html</a><br /><br />他にもアクティビティ図やネットワーク図などがあります。<br />必要に応じて追加するといいかもです。<br />はじめに全部入れておいても不都合はないと思います。<br /><a href="http://d.hatena.ne.jp/torutk/20110522/p1" target="_blank" title="http://d.hatena.ne.jp/torutk/20110522/p1">http://d.hatena.ne.jp/torutk/20110522/p1</a><br /><a href="http://d.hatena.ne.jp/hekyou/20110717/p1" target="_blank" title="http://d.hatena.ne.jp/hekyou/20110717/p1">http://d.hatena.ne.jp/hekyou/20110717/p1</a><br /><br />shpinxドキュメントにこれらの図を埋め込むにはconf.pyを設定する必要があります。<br />この時点で下記リンク先のようなconf.pyになっていました。<br /><a href="https://gist.github.com/1978985" target="_blank" title="https://gist.github.com/1978985">https://gist.github.com/1978985</a><br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
extensions = []
extensions.append('sphinxcontrib.blockdiag')
extensions.append('sphinxcontrib.seqdiag')
extensions.append('japanesesupport')
blockdiag_fontpath = r'C:\Windows\Fonts\msgothic.ttc'
seqdiag_fontpath = r'C:\Windows\Fonts\msgothic.ttc'
</pre>
<br />extensions.append('XXXXX')<br />こんな感じでどんどん拡張を追加していくとやりやすいかもです。<br /><br />あと、日付フォーマットは<br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
today_fmt = '%Y-%m-%d %H:%M:%S'
</pre>
<br />にしました。<br /><br />sphinxドキュメントをHTML出力する際に日本語が含まれると思いますので、<br />下記のようなパスにあるsphinxdoc.css_tを<br />C:\TracLight\python\Lib\site-packages\Sphinx-1.1.2-py2.6.egg\sphinx\themes\sphinxdoc\static\sphinxdoc.css_t<br />↓<br />F:\sphinxdoc\hoge\_static\sphinxdoc.css_t<br />みたいな感じでコピーしておきます。<br /><a href="https://gist.github.com/1978951" target="_blank" title="https://gist.github.com/1978951">https://gist.github.com/1978951</a><br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
font-family: 'Arial', 'Helvetica', sans-serif;
・
font-family: 'Consolas', 'Courier New', monospace;
・
font-family: 'Consolas', 'Courier New', monospace;
・
font-family: 'Arial', 'Helvetica', sans-serif;
</pre>
<br />こんな順番で参考にさせて頂いたサイトと同様にfont-familyを変更しました。<br /><br />シーケンス図の埋め込みはこんな感じです。<br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
.. seqdiag::
seqdiag admin {
browser -> webserver [label = "GET /index.html"];
browser <-- webserver;
browser -> webserver [label = "POST /blog/comment"];
webserver -> database [label = "INSERT comment"];
webserver <-- database;
browser <-- webserver;
}
</pre>
<br /><br />ブロック図の埋め込みはこんな感じです。<br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
.. blockdiag::
blockdiag admin {
// Set labels to nodes.
A [label = "foo"];
B [label = "bar"];
// And set text-color
C [label = "baz"];
// Set labels to edges. (short text only)
A -> B [label = "click bar", textcolor="red"];
B -> C [label = "click baz"];
C -> A;
}
</pre>
<br /><br />ブロック図に関してよく使うスタイルとか。<br /><pre style="background-color: lightgrey; border: solid 1px; mardin: 5px; padding: 10px; white-space: -moz-pre-wrap; white-space: -o-pre-wrap; white-space: -pre-wrap; white-space: pre-wrap; word-wrap: break-word;">
node_width = 160;
node_height = 60;
default_fontsize = 12;
default_node_color = "#4F81BD";
default_textcolor = "#FFFFFF";
class data [ shape = flowchart.input ];
class ext_syori [color = "#9BBB59"];
class ext_data [color = "#9BBB59", shape = flowchart.input];
</pre>
<br /><br />あと、sphinxでテーブルの出力はまあまあ面倒くさくて、<br />list-tableやcsv-tableをよく使うことになる。<br />なんか癪だったのでpythonでtsvをうまくテーブルにするもの作ってみた。<br /><a href="https://gist.github.com/1977836" target="_blank" title="https://gist.github.com/1977836">https://gist.github.com/1977836</a><br />まだ、未完成でして、同一セル内の改行に対応できていません。<br /><br />こんなところです。
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-34278209969107248432012-11-01T02:26:00.001+09:002012-11-02T02:50:15.127+09:00[python]macへ PIL FREETYPE2 support available でのインストールsphinx の block-diag や seq-diag を使う際にフォントをTrueTypeフォントで設定。<br />
<br />
make html すると以下エラー。<br />
<br />
<br />
<pre class="prettyprint">ImportError: The _imagingft C module is not installed
</pre>
<br />
この原因と対応方法は<a href="http://note.sicafe.net/macPackageManageTips/html/homebrewPythonInstall.html">こちら</a>の6以降参照。<br />
<br />
ざっくりそのまま転載するとPILの<br />
<blockquote>
後日ためしたところ上手く行ったが、FREETYPE2 support not available となってしまっている。</blockquote>
<br />
が原因。<br />
<br />
こういう感じ。<br />
<br />
<pre class="plain"> --------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform darwin 2.7.2 (default, Nov 9 2011, 19:35:03)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
--- LITTLECMS support available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.</pre>
<br />
で、これをなおすには<a href="http://stackoverflow.com/questions/4984979/no-module-named-imagingft">これ</a>を参考にしつつ次。<br />
<pre class="plain">$ pip uninstall PIL
$ ln -s /usr/X11/include/freetype2 /usr/local/include/
$ ln -s /usr/X11/include/ft2build.h /usr/local/include/
$ ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/
$ ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib
$ pip install PIL</pre>
<br />
で、これでいいんだけれど、私の mac mountail lion pre install な PC だと<br />
/usr/X11/include/freetype2 もなければ、/usr/local/include/ もない。<br />
※ないのはX11入れてないからかな?X11いれずにXCodeいれた山ライオンだとこうなるのかもね。 <br />
<br />
探してみると<br />
<br />
※sudo find / -name freetype2 とかね<br />
<br />
<pre class="prettyprint">ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/X11/include/freetype2 /usr/local/include/
ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/X11/include/ft2build.h /usr/local/include/
ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/X11/lib/libfreetype.6.dylib /usr/local/lib/
ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib
</pre>
<br />
となった。<br />
<br />
多分、XCodeのコマンドラインツールをインストールしてないとダメっぽいね。<br />
<br />
予め gcc とか make するためにXCode のコマンドラインツールはインストールしてた。<br />
<br />
これで sudo pip install pil したら<br />
<br />
<pre class="prettyprint"> --------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform darwin 2.7.2 (default, Jun 20 2012, 16:23:33)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)]
--------------------------------------------------------------------
--- TKINTER support available
*** JPEG support not available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
</pre>
無事こうなりました。<br />
<br />
おわり。<br />
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-84382040540617653792012-10-30T20:45:00.001+09:002012-10-31T03:35:18.422+09:00[IntelliJ IDEA]nodejs と npmぜんぜんわかんない。。。<br />
<br />
多分、やり方間違ってる記事です。<br />
<br />
package.json みたら書いてたバージョンそのままです。(これでいいのかもわからんす)<br />
express3.0.0<br />
socketio0.9.10<br />
<br />
とりあえず、IDEA に nodejs プラグインを入れた。<br />
<br />
mac に nodejs と npm をインストールした。<br />
<a href="http://d.hatena.ne.jp/replication/20120303/1331649269">参考</a>
<br />
<br />
<br />
IDEA 上から npm でライブラリをインストールしたりする方法がわからない。<br />
プロジェクトディレクトリ直下には node_modules という刺激的なディレクトリがあったのでついなんとなく、<br />
IdeaProject ディレクトリの該当プロジェクトディレクトリまで移動してそこで npm install socket.io とか<br />
npm install cookie とかしちゃった。<br />
<br />
参考にさせてもらった<a href="https://gist.github.com/3931831">サンプルソース</a><br />
<br />
まあこれで動いてるのでとりあえずこれで。<br />
<br />
そのうち分かってくれば、本当はこうだったというのがわかるだろう。<br />
<br />
ご指摘お待ちしております。isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-12264364517645248712012-10-25T17:48:00.000+09:002012-10-25T17:50:35.842+09:00[IntelliJ IDEA]coffeescript が実行できないMacです。<br>
<br>
coffeescript を書くということだけにおいては<br>
IntelliJ IDEAで適当な Web Module でプロジェクトつくって<br>
*.coffee なファイルを作って開くだけ。<br>
<br>
coffeescript のプラグイン有効にしてたら<br>
シンタックスハイライトもしてくれる。<br>
<br>
右クリック -> Preview Compiled CoffeeScript File... <br>
で coffeescript を javascript に変換してくれる。<br>
<br>
で、ここまではいいんだけど。<br>
<br>
coffeescript そのまま実行したいんすよね。<br>
<br>
右クリック -> Create 'XXXXX.coffee'<br>
で Edit Configurations を表示して<br>
確実に存在するパスを指定して(which node とかでね)<br>
nodejs の実行パスや coffee の実行パスを指定。<br>
<br>
Run すると次のエラー。<br>
<br>
<br /><br>
<pre class="prettyprint">/usr/local/bin/coffee src/test.coffee<br>
env: node: No such file or directory<br>
<br>
Process finished with exit code 127<br>
</pre><br>
ぜんぜんわかんないの。<br>
<br>
<a href="http://youtrack.jetbrains.com/issue/WI-10333">こんな ISSUER</a>が登録されているみたい。<br>
<br>
アプリケーションのplist(プロパティリスト)触ったらいいよ、ってさ。<br>
でもなぜぼくたちがIDEを使うかというと一度設定したら二度気にしないためにIDEを使う。<br>
こんな七面倒臭いことをIntelliJ IDEAのアップデートごとにやってたらIDEの本質を損なう、って指摘があった。<br>
そうだそうだ!<br>
<br>
ということで、そのうちなおすはず。<br>
<br>
ワークアラウンドにプロパティリストで回避するのはありか。<br>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-20811328734079862642012-10-02T17:51:00.000+09:002012-11-01T03:20:06.731+09:00[IntelliJ IDEA]PHP開発環境をつくってみた<br />
<br />
窓にphp開発環境つくる<br />
<br />
開発環境といえば、デバッグ、テストできて当たり前。<br />
ソース管理はgitかsvnだけどこれはどのプログラミング言語でも一緒だから割愛。<br />
<br />
Apacheいれるのめんどくさいので<br />
php5.4 の Built in web server を使う。<br />
<br />
<a href="http://d.hatena.ne.jp/nowokay/20120531">http://d.hatena.ne.jp/nowokay/20120531</a><br />
<br />
ぬこびーんでできるし<br />
IntelliJ IDEA でもできるんじゃね?<br />
ってことでIDEは使い慣れた(い)IntelliJ IDEAで。<br />
<br />
<h4>■phpのインストール</h4>
<br />
<br />
<a href="http://memorva.jp/memo/windows/php.php">http://memorva.jp/memo/windows/php.php</a><br />
<br />
ZIP版のほうがありがたいのでZIP版で。<br />
2012/10/02 時点でもインストーラーはないっぽい。<br />
<br />
C:\opt\php として展開。<br />
<br />
環境変数に PATH=$PATH;C:\opt\php を設定。<br />
→Rapid EE が便利だよ!<br />
<br />
コマンドラインで php -v でパス通ればOK。<br />
<br />
<h4>■IntelliJ IDEA でプロジェクト作成</h4><br />
<br />
PHP Module があると思ってたけどなかった・・・。<br />
<br />
Web Module にして Empty module で Finish.<br />
<br />
File -> Settings の PHP で<br />
PHP language level : 5.4<br />
Interpreter で ... を押下して + で<br />
C:\opt\php を指定したインタプリタを選択。<br />
もちろんphp5.4ね。<br />
<br />
PHP -> Servers も設定しておく。<br />
Name は適当、Hostはlocalhost、Portは80、DubuggerはXdebugで追加。<br />
<br />
Settings は OK にして Editor に戻る。<br />
<br />
Edit Configurations で<br />
PHP Built-in Web Server を設定。<br />
Hostはlocalhost、Portは80、DocumentRootはプロジェクトフォルダでOK。<br />
<br />
ついでに PHP Web Application で Server(PHP -> Servers で追加したやつ)、<br />
Start URL、Browserを設定しておく。<br />
<br />
PHP Built-in Web Server で作成した設定を実行すれば<br />
PHP Built-in Web Server が起動する。<br />
<br />
適当なスクリプト(phpinfo()とか)を作って<br />
PHP Web Application で作成したい設定を実行すれば<br />
ブラウザが立ち上がって参照できる。<br />
<br />
<h4>■xdebugのインストール</h4><br />
<br />
デバッガー。<br />
<br />
<a href="http://keicode.com/cgi/introducing-xdebug.php">http://keicode.com/cgi/introducing-xdebug.php</a><br />
<br />
phpinfo(); なスクリプトで DebugBuild が no になっているかを確認。<br />
<br />
※no になってないときはわかんない。php.ini さわるかんじ?<br />
<br />
php5.4 なので <a href="http://www.xdebug.org/download.php">http://www.xdebug.org/download.php</a> から<br />
PHP 5.4 VC9 (32 bit) をDLした。環境にあわせてね。<br />
あと、TS ってなに?こっちの dll だとダメでした。<br />
<br />
php.ini に<br />
zend_extension="C:\opt\php\ext\php_xdebug-2.2.1-5.4-vc9.dll"<br />
を追記。<br />
参考サイトにあるように zend_extension_ts としたけどダメでした。<br />
php.ini の場所は Loaded Configuration File で。<br />
<br />
C:\opt\php\php.ini-development をコピって php.ini を作った。<br />
<br />
ここに上記の内容を追記してサーバ再起動。<br />
<br />
IntelliJ IDEA上でブレークポイントを設置してデバッグ実行、<br />
ブラウザを表示しようとしたらちゃんとデバッグできた。<br />
<br />
※2012/10/06 02:56:01 追記<br />
<br />
これだけだとうまくデバッグできないですね。<br />
できなくなって、このメモを見返して気付きました。<br />
リモートデバッグもうまくやったらできるんでしょうがそれはまだ調べてません。<br />
再生マークみたいなアイコンの左くらいにあるプルダウンから Edit Configuration を選択して、<br />
Run/Dubug Configurations 画面で +(追加) を押して<br />
Server は Settings -> PHP -> Servers で登録してる localhost、start URL を / とか適当なもの、Browser も適当なものを選択してOK.<br />
あとはデバッグするだけでブラウザで start URL が立ち上がってパラメータにそれっぽいのが確認できます。<br />
もし / とかが静的ファイルだったらPHPスクリプトが動くところに移動するとCookieにXDEBUG~ってキーバリューが保存されるのでこれでパラメータなしでもデバッグで止まるようになります。<br />
なんかもっとうまいやり方あるんだろうなって思いながらとりあえずデバッグできるのでまたやりたいことが次のステップにむいたときに調べます。<br />
もし教えてくれると嬉しいです。<br />
<br />
参考<br />
<a href="http://www.jetbrains.com/idea/webhelp/php-debugging-session.html">http://www.jetbrains.com/idea/webhelp/php-debugging-session.html</a><br />
<br />
<br />
<h4>■pearのインストール</h4><br />
<br />
ライブラリ管理ツール。<br />
<br />
これはやらなくてもいいんだけど<br />
phpunitを手で入れようとしたら失敗したからこれで。<br />
<br />
窓のpearはめんどかった。<br />
UNIX系は楽なんかな。<br />
知らん。<br />
<br />
<a href="http://d.hatena.ne.jp/takeru-c/20110912/1315796049">http://d.hatena.ne.jp/takeru-c/20110912/1315796049</a><br />
<br />
で、このとおりやって pear のインストールはOKなんだけど、<br />
pear 経由でライブラリを入れようとすると<br />
<br />
PEAR_Config::writeConfigFile fopen('C:\Windows\pear.ini','w') failed (fopen(C:\W<br />
indows\pear.ini): failed to open stream: Permission denied)<br />
<br />
になる。<br />
<br />
ちゃんと回避したはずなのに。<br />
<br />
<a href="http://www.glamenv-septzen.net/view/40">http://www.glamenv-septzen.net/view/40</a><br />
<br />
結論:PHP_PEAR_SYSCONF_DIR 環境変数を設定せよ。<br />
<br />
とあるように環境変数を設定すればいいみたい。<br />
<br />
PHP_PEAR_SYSCONF_DIR=C:\opt\php\pear\<br />
<br />
として設定。<br />
<br />
このあたりの詳細は上記サイトでちゃんと説明してくれてる。<br />
<br />
とりまこれでOK。<br />
<br />
<h4>■PHP Unit のインストール</h4><br />
<br />
<a href="http://www.atmarkit.co.jp/fcoding/articles/phptest/02/phptest02a.html">http://www.atmarkit.co.jp/fcoding/articles/phptest/02/phptest02a.html</a><br />
<br />
とりあえず pear 叩いてインスコした。<br />
<br />
それっぽいのができた。<br />
<br />
※2012/10/03 19:13:37 追記<br />
<br />
File -> Settings の PHP で<br />
Include path に C:\opt\php\pear みたいにパスを指定しないと<br />
PHP Unit の補完ができないので指定しとく。<br />
<br />
<br />
<br />
<h4>■PHP Unit をIntelliJ IDEA から</h4><br />
<br />
さあ テストドリブンに開発すっぞ!<br />
ってことでIDEかららくらくテストコード生成してゴリゴリできるようにする。<br />
<br />
Edit Configurations から PHPUnit を作成。<br />
※PHPUnit on server ってなに?状態です・・・<br />
<br />
<a href="http://www.jetbrains.com/idea/webhelp/run-debug-configuration-phpunit.html">http://www.jetbrains.com/idea/webhelp/run-debug-configuration-phpunit.html</a><br />
<br />
Direcotory は test ディレクトリをプロジェクト配下に作成。<br />
<br />
PHP Unit では Skeleton Generator でスケルトンクラスを出力するみたいで<br />
PHP Unit とは別モジュールでSkeleton Generator が配られているみたいです。<br />
<br />
<a href="http://www.jetbrains.com/idea/webhelp/generating-phpunit-test-class.html">http://www.jetbrains.com/idea/webhelp/generating-phpunit-test-class.html</a><br />
<br />
上記サイト内のリンクに <a href="http://www.phpunit.de/manual/3.6/en/skeleton-generator.html">http://www.phpunit.de/manual/3.6/en/skeleton-generator.html</a> へのリンクがあって<br />
これをみながら pear を叩いて Skeleton Generator をインストールした。<br />
<br />
File -> Settings で PHP -> PHPUnit -> Skeleton Generator で<br />
Use Skeleton Generator を チェックして、<br />
pear config-show で bin_dir の値 C:\opt\php\pear を<br />
Path to phpunit-skelgen として設定。<br />
<br />
これで準備万端と思いHTML内にphpスクリプト埋め込んだコードで張り切って<br />
CTRL + SHIFT + T おしても無反応。<br />
右クリック -> Go To -> Test がグレーアウト。<br />
ダメじゃん。<br />
<br />
設定間違えたかな?と思ってもあってる気がする。<br />
<br />
ためしに PHP File じゃなく PHP Class を新規作成して<br />
有効なスクリプトステートメントで CTRL + SHIFT + T 押したら<br />
Go to Test... と書かれたウィンドウが!<br />
OK して テストクラス名や出力ファイル名、出力ディレクトリを指定して OK.<br />
生成されましたー。<br />
<br />
で、(JSPでごりごりViewにロジック書くような汚い)テンプレートに記述したスクリプトは<br />
さすがにテストできないのかな。<br />
WebUnit的なもの?でノード解析とかしちゃう系?<br />
<br />
とりま、ここまで。<br />
<br />
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-26439655310979081022012-09-30T05:37:00.004+09:002012-09-30T05:37:58.202+09:00[other]Apache JMeterApache JMeter はJavaで書かれたパフォーマンステストなどに用いるツール。<div>
<br /></div>
<div>
<a href="http://www.techscore.com/tech/Java/ApacheJakarta/JMeter/index/">http://www.techscore.com/tech/Java/ApacheJakarta/JMeter/index/</a></div>
<div>
<br /></div>
<div>
techscoreで使い方は参照しつつとりあえず使えるレベルでした。</div>
<div>
<br /></div>
<div>
で、今日新しく知ったこと!</div>
<div>
<ul>
<li>HTTPプロキシを使ってブラウザの操作を記録できる</li>
<li>コマンドラインで実行できる</li>
<li>コマンドラインから引数(プロパティ)でスレッド数など変更できる</li>
<li>リモート上のJMeterを操作できる</li>
</ul>
</div>
<div>
ドキュメントちゃんと読んだら当たり前なんだろうけど。</div>
<div>
<br /></div>
<div>
HTTPプロキシでページ情報を収集できるのはすごい便利。</div>
<div>
<br /></div>
<div>
シナリオを作成するストレスがかなり低減された。</div>
<div>
<br /></div>
<div>
コマンドラインで実行できるというのも非常に楽。</div>
<div>
<br /></div>
<div>
●HTTPプロキシ</div>
<div>
<a href="http://isakado.blog106.fc2.com/blog-entry-81.html">http://isakado.blog106.fc2.com/blog-entry-81.html</a></div>
<div>
<br /></div>
<div>
●コマンドライン実行</div>
<div>
<a href="http://e-arrows.sakura.ne.jp/2009/12/jmeterstress-test.html">http://e-arrows.sakura.ne.jp/2009/12/jmeterstress-test.html</a></div>
<div>
<br /></div>
<div>
●コマンドライン引数</div>
<div>
<a href="http://d.hatena.ne.jp/defiant/20080909/1220944470">http://d.hatena.ne.jp/defiant/20080909/1220944470</a></div>
<div>
<br /></div>
<div>
●リモート</div>
<div>
<a href="http://d.hatena.ne.jp/tomoyamkung/20090205/1233797910">http://d.hatena.ne.jp/tomoyamkung/20090205/1233797910</a></div>
<div>
<br /></div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-16892932238376314072012-09-20T02:21:00.001+09:002012-12-18T15:51:12.127+09:00[Python]mac に virtualenv を入れる■easy_install<br />
まずはここから。<br />
mac だからかはわからないが、easy_install がエラーになったので、下記を参考に distribute の easy_install を入れた。<br />
<a href="http://d.hatena.ne.jp/buta9999/20120329/1333028463">http://d.hatena.ne.jp/buta9999/20120329/1333028463</a><br />
<br />
curl -O http://python-distribute.org/distribute_setup.py<br />
python distribute_setup.py<br />
<br />
このあたりのパッケージ管理は歴史的にゴタゴタしていたらしい。<br />
東風さんの記事「パッケージ管理」がとても参考になります。<br />
<a href="http://ymotongpoo.hatenablog.com/entry/2012/09/16/090842">http://ymotongpoo.hatenablog.com/entry/2012/09/16/090842</a><br />
<br />
■virtualenv と virtualenvwrapper<br />
<br />
sudo easy_install virtualenv<br />
<div>
sudo easy_install virtualenvwrapper<br />
でインストール。<br />
<br />
これはこれでOK。<br />
<br />
■ログインシェルの設定<br />
パスが通っていないので workon や deactivate できない。<br />
どのシェルにパス通せばいいかというと<br />
sudo find / -name "<span style="background-color: #eeeedd; color: #444433; font-size: 13px; white-space: pre-wrap;">virtualenvwrapper.sh</span>"<br />
で検索できるそれっぽいやつ。<br />
<br />
わっすの場合、<br />
vim ~/.bash_profile<br />
して<br />
<pre class="prettyprint">export WORKON_HOME=~/.virtualenvs
. /usr/local/bin/virtualenvwrapper.sh
</pre>
</div>
<br />
これらを追記しました。<br />
<br />
で、ログインし直すなり source ~/.bash_profile してパスを通してから<br />
workon<br />
するとコマンドが迷子になりません!<br />
やりました。<br />
成功です。<br />
あとは、<br />
mkvirtualenv hogehoge<br />
して仮想環境つくって、~/.virtualenvs/hogehoge とか見に行ったりできたらOK。<br />
deactivate で仮想環境から抜けられます。<br />
<br />
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-63419461118080000772012-09-19T01:27:00.003+09:002012-09-20T02:03:41.005+09:00[IntelliJ IDEA]Sphinx を使うIntelliJ IDEA で Sphinx にて reST を変換して HTML 出力するまで。<br />
<br />
■Sphinx のインストール<br />
まず、easy_install をインストールします。<br />
Mac なら次。<br />
参考 <a href="http://d.hatena.ne.jp/buta9999/20120329/1333028463">http://d.hatena.ne.jp/buta9999/20120329/1333028463</a><br />
<br />
<pre class="syntax-highlight" style="background-color: #f6eef1; border: 1px solid rgb(236, 222, 227); color: #555555; font-size: 12px; overflow-x: auto; overflow-y: hidden; padding: 0.5em 0.8em;">$ curl <span class="synSpecial" style="color: #c000c0;">-O</span> http://python-distribute.org/distribute_setup.py
$ sudo python distribute_setup.py
</pre>
<div>
<br /></div>
<div>
Windows ならdistribute_setup.py をブラウザとかでDLして これを実行で。</div>
<div>
<br /></div>
<div>
(一応、Mac は virtualenv 環境あるので workon しとく。)</div>
<div>
次に、sudo easy_install sphinx で依存含めてインストール。</div>
<div>
<br /></div>
<div>
<div>
Mac なら which sphinx-quickstart ができる、</div>
<div>
Windows なら where shinx-quickstart ができれば正常にインストールできてます。</div>
</div>
<div>
<br /></div>
<div>
■sphinx-quickstart</div>
<div>
<br /></div>
<div>
適当に sphinx のプロジェクトレベルの設定ファイルやらソースファイルやらアウトプットやらをおくディレクトリを作ってあらかじめそこに移動。</div>
<div>
<br /></div>
<div>
sphinx-quickstart してプロジェクト名、作者、バージョンくらいを入力して他デフォルトOKしとく。</div>
<div>
<br /></div>
<div>
■IntelliJ IDEA で インポート</div>
<div>
Create project from existing sources でさっき作ったディレクトリのパスを指定して python でプロジェクトを作る。</div>
<div>
<br /></div>
<div>
■ビルドの設定</div>
<div>
Edit Configurations で Python docs -> Sphinx task を選択。<br />
<br /></div>
<div>
<span id="goog_2092820568"></span></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirkOQ5aIgAQIG44jGZMj04bsXYzf5DjRryltbvC1ebP-TS-56VedLgxbN4oBu-Gb6boEkFm0ysMcb4hGjKJKQTLU47ju8o_z3j-8yHlHhBEn0461YJo4It6yNi2QIzb4wYfRsbocZjWMsx/s1600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2012-09-19+0.28.18.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirkOQ5aIgAQIG44jGZMj04bsXYzf5DjRryltbvC1ebP-TS-56VedLgxbN4oBu-Gb6boEkFm0ysMcb4hGjKJKQTLU47ju8o_z3j-8yHlHhBEn0461YJo4It6yNi2QIzb4wYfRsbocZjWMsx/s320/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2012-09-19+0.28.18.png" width="320" /></a></div>
<br />
次に、Command 、Input、Output 適宜入力。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeQmLAFVXDDLmwCwJRDyZDGlxEU-YRO0ZZukz0KDUY39HvGXzw-_KX6okogsUbAOPJ3fBdRm1dNUwoovqARLVKPDSrvxB5yDiFrjQIUDnO7KTUDMq2NJVilgpd8pOR7apKtLzJYbKKf9a/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2012-09-19+0.29.36.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeQmLAFVXDDLmwCwJRDyZDGlxEU-YRO0ZZukz0KDUY39HvGXzw-_KX6okogsUbAOPJ3fBdRm1dNUwoovqARLVKPDSrvxB5yDiFrjQIUDnO7KTUDMq2NJVilgpd8pOR7apKtLzJYbKKf9a/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2012-09-19+0.29.36.png" width="320" /></a></div>
<br />
これで準備OK.<br />
<br />
あとは makeすればできる。<br />
<br />
■mac の場合の補足<br />
<a href="http://memo.yomukaku.net/entries/UaLbzhE">http://memo.yomukaku.net/entries/UaLbzhE</a><br />
<br />
XCode のインストールと Command Line Tools をインストールする。<br />
gcc -v か which gcc と which make でインストール確認。<br />
<br />
これインストールしとかないと make コマンドがたたけない。<br />
<br />■自分メモ<br />
IntelliJ IDEA で virtualenv したかったらSDKの設定で普通に virtualenv 環境のパス配下にある Python へのシンボリックリンク「/Users/zono/.virtualenvs/path/hogehoge/python」みたいなのを使えばいい。<br />
<br />
すると IntelliJ IDEA が次みたいな感じでsite-packeges も自動でロードしてくれた。<br />
file:///Users/zono/.virtualenvs/sphinx/lib/python2.7/site-packages/*.egg</div>
<div>
<br />
あと、隠しフォルダがもし見えないときは ln -s /Users/zono/.virtualenvs/sphinx/ /Users/zono/sphinxenv とかって適当にシンボリックリンク作るとなんとかなる。</div>
<div>
<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
NameError: Cannot find sphinx in selected interpreter.</blockquote>
</blockquote>
<br />
こんなエラーになったときは、IntelliJ IDEA のプロンプトに表示される<br />
/Users/zono/.virtualenvs/sphinx/bin/python "/Users/zono/Library/Application Support/IntelliJIdea11/python/helpers/rest_runners/sphinx_runner.py" -b html /Users/zono/sphinxdocs/zonote /Users/zono/sphinxdocs/zonote/_build</div>
<div>
みたいなのを確認しよう。</div>
<div>
私の場合はシステムの python になっちゃっていたので、Edit Configurations で実行する python を virtualenvs 配下のものに変更したら正常に動作した。</div>
<div>
<br /></div>
<div>
IntelliJ IDEA で無理やり?かはわかりませんが、virtualenv も問題ないのでどんどん virtualenv 環境を作っちゃいましょう。</div>
<div>
もちろん、 virtualenvwrapper 使います。</div>
<div>
<br /></div>
<div>
<br /></div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-86116927480108811332012-09-12T01:43:00.004+09:002012-09-19T00:25:30.368+09:00[WebStorm]Live Edit する方法私が迷ったのでメモ。<br />
<br />
※IntelliJ IDEA でも Live Edit できました。プラグインから Live Edit をインストールしてWebStorm と同じようにすればOKです〜。<br />
<br />
■環境<br />
<br />
WebStorm 5.0<br />
Chrome21<br />
<br />
■Live Edit の設定<br />
<br />
View に Live Edit があるのでチェックしておく。<br />
<br />
Preferences -> IDE settings -> Live Edit<br />
にオプション2つあるので両方共チェックしておく。<br />
<br />
WebStorm の右下のほうに EventLog があるのでこれを押下。<br />
<br />
<pre class="prettyprint">23:37:59 JetBrains Chrome Extension
JetBrains Chrome Extension for Live Editing will be automatically installed after you restart Google Chrome.
If you wish to install it manually without restarting Chrome, follow this procedure (link opens in a new Chrome window).
</pre>
このように書いてるのでリンクをクリック。<br />
<br />
ポートはそれぞれ変わるような気もしますが <a href="http://localhost:63363/index.html">http://localhost:63363/index.html</a> にリンクしました。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGGOnJkcbNnfHl2IaYBq-NelXNir0K_ldAYaQFahqsu5iI92mg93iSdIAuiCHoC3lXvysPSSfAE_sIexVXU12kSrpMcbHPmU6WOiSnGWUzC7k609AoBB2pU_e3BADwcSSvhgLgmnk2ihT2/s1600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2012-09-12+1.32.15.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGGOnJkcbNnfHl2IaYBq-NelXNir0K_ldAYaQFahqsu5iI92mg93iSdIAuiCHoC3lXvysPSSfAE_sIexVXU12kSrpMcbHPmU6WOiSnGWUzC7k609AoBB2pU_e3BADwcSSvhgLgmnk2ihT2/s320/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2012-09-12+1.32.15.png" width="320" /></a></div>
こんな画面が出ます。<br />
<br />
ここに書かれている通り、 Chromeプラグイン jb.crx を名前を付けて適当なパスに保存する。<br />
<br />
Chromeの 設定 -> ツール -> 拡張機能 で画面を開き、さっきの jb.crx ファイルをドラッグ・アンド・ドロップする。<br />
<br />
これでプラグインをインストールできる。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsMUZNONvCgb0iS0apGUUSGR9g1wAbOvmIwcq2k0kwjfDwV8yn8plkNTrUtpQfq-32PzYSu_toGHrgEWf4Sj3NnjK9jaoWNTBsLbbafEoiWHcm82zieRZm5GlsoSTXcDw6EZvnnZKR3uWm/s1600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2012-09-12+1.41.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="38" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsMUZNONvCgb0iS0apGUUSGR9g1wAbOvmIwcq2k0kwjfDwV8yn8plkNTrUtpQfq-32PzYSu_toGHrgEWf4Sj3NnjK9jaoWNTBsLbbafEoiWHcm82zieRZm5GlsoSTXcDw6EZvnnZKR3uWm/s320/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2012-09-12+1.41.10.png" width="320" /></a></div>
<br />
Chrome21ではChromeウェブストア以外からはプラグインをインストールできないようなので、一旦自分のローカルマシン上にプラグインファイルをDLしてこれを拡張機能の画面へドラッグ・アンド・ドロップすることでプラグインをインストールできるみたいです。<br />
<br />
<br />
あとは WebStorm に戻って View ー> Open in Browser で Chrome で HTML を開く。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqxnxPZogofKVe9P0_Q8-K2CkilGmq5rpjwHkKzCJHYJaW3WdEX2QX82aWYkL2tzPMRj8BQ-XcgYuCrH7Ag4FPjCpLG_RBrW00XbVd-_2ts9pr5C4TiOXqNh7ZnLbzQpNgwdEVbQ9VRYlp/s1600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2012-09-12+1.42.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqxnxPZogofKVe9P0_Q8-K2CkilGmq5rpjwHkKzCJHYJaW3WdEX2QX82aWYkL2tzPMRj8BQ-XcgYuCrH7Ag4FPjCpLG_RBrW00XbVd-_2ts9pr5C4TiOXqNh7ZnLbzQpNgwdEVbQ9VRYlp/s320/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88+2012-09-12+1.42.39.png" width="320" /></a></div>
こんな感じで表示されていれば Live Edit できます。<br />
<br />
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-59526632637383458682012-09-04T01:22:00.001+09:002012-09-12T01:24:47.951+09:00[linux]cicindelaのデモ動かすまでperlゴリゴリなモジュールとかトライ・アンド・エラーなメモ。<br />
cicindelaのデモを動かすところまででつまったところなど。<br />
<br />
■まずはじめに<br />
<br />
すべてはここからはじまった。<br />
<a href="http://labs.edge.jp/cicindela/">http://labs.edge.jp/cicindela/</a><br />
<br />
お、簡単そうじゃんと思ったんだけどな。<br />
使うのは簡単かも、環境構築と設定は…どうだろうか。<br />
<br />
■環境<br />
AWS(Amazon Linux OS AMI)<br />
apche 2.2<br />
perl 5.10.XX(失念)<br />
mysql 5.X(失念)<br />
<br />
yum でインストールできる 2012.09.04時点のバージョンのままでソースからビルドとかレベル高いことはやってません。<br />
<br />
■AWSインスタンス作成<br />
<br />
とりあえず、AWSでmicro(あとでメモリサイズ600MBではダメなのでsmallに変更するハメになります)インスタンスでサーバセットアップ。<br />
<br />
■cicindelaインストール<br />
<br />
さあやるぞと公式ドキュメントをみつつ。<br />
<a href="http://code.google.com/p/cicindela2/wiki/Install">http://code.google.com/p/cicindela2/wiki/Install</a><br />
<br />
ここに書かれていることが素直にできればデモまではかんたんです。<br />
私がつまってしまったのは私に問題のノウハウがなかったからです。<br />
<br />
svnからソースDLしろってかいてるので<br />
sudo su - して<br />
yum -y install svn<br />
<br />
ソースを/home/cicindela へチェックアウト。<br />
パス書き換えるのが面倒なのでとりあえず動きや設定を理解するためにパスはドキュメントに従います。<br />
<br />
■MySQLインストール<br />
<br />
今度は、mysql がいるのでRDS使わずに1つのサーバでとりあえず全部すませてしまいます。<br />
<br />
yum -y install mysql-server<br />
<br />
で、my.cnf の設定はシンボリックリンク作らずに手動でマージします。<br />
ここでテーブルヒープメモリのサイズが1GBをこした設定になっていることに気が付かず…。<br />
さきに言っとくとあとで面倒なエラーになるので1GB以上のメモリつんでるサーバにmysqld インスコしないといけないです。<br />
私はあとでmicro→smallにインスタンスタイプを変更しました。<br />
<br />
■perlモジュールのインストール<br />
<br />
次にperlモジュールのインスコ。<br />
<br />
ここハマった。<br />
<br />
インストールで依存関係とかよくわかんなにのでCPANでperlモジュールはインストールしたい。<br />
<br />
なので下記コマンドでCPAN経由でインストールする。<br />
<br />
<pre class="prettyprint">perl -MCPAN -e shell
</pre>
まず、AWS環境(Amazon Linux OS AMIだけ?)特有ですが、gcc 入ってません。<br />
<br />
なので yum -y install gcc します。<br />
<br />
ただ、これでもダメです。<br />
<br />
make ができません。<br />
<br />
デフォルトでは開発ツールが入っていないようなのでインスコします。<br />
<a href="http://memo-off.blogspot.jp/2012/07/make-command-not-found-on-amazon-linux.html">http://memo-off.blogspot.jp/2012/07/make-command-not-found-on-amazon-linux.html</a><br />
<br />
これでいくつかはインスコできるようになりますが、DBD::mysql がエラー。<br />
<br />
私の場合は、C/C++からmysql参照するAPIがなく。<br />
<a href="http://blogs.yahoo.co.jp/take_low_6/23542159.html">http://blogs.yahoo.co.jp/take_low_6/23542159.html</a><br />
<br />
<br />
<pre class="prettyprint">yum -y install mysql-devel
</pre>
これでDBD::mysql通った。<br />
<br />
あと perl --version でたしか5.10.XXだったのでModule::Pluggableはインスコいらなかった。<br />
<br />
ためしに perl -e "use Module::Pluggable;" してみてエラーなかったらインスコいらんぽい。<br />
<br />
■apache + mod_perl インストール<br />
<br />
で、次は apache + mod_perl のインスコ。<br />
<br />
これはふつうに yum -y install httpd mod_perl した。<br />
<br />
Redhat系OSならIncludeディレクティブはいらない。<br />
<a href="http://futuremix.org/2004/05/mod_perl">http://futuremix.org/2004/05/mod_perl</a><br />
<br />
もし気になるようなら /etc/httpd/conf.d/perl.conf コメントアウトして /etc/httpd/conf/httpd.conf に。<br />
<br />
ただどちらにしても次の設定は必要。<br />
<div>
<br /></div>
<pre class="prettyprint">Include /home/cicindela/etc/httpd/modperl.conf
</pre>
この設定によって、http://hostname:80/cicindela/ 以下にアクセスすると perl スクリプトが実行されるようになる。<br />
<br />
あと、deamontools はインスコしなかった。<br />
<br />
ログは touch と chmod して、ログローテの記述を足した。<br />
<br />
これでインスコOK。<br />
<br />
<br />
■デモの確認<br />
<br />
デモを動かしつつほんとにインスコOKなのか確認します。<br />
<br />
デモ<br />
<a href="http://code.google.com/p/cicindela2/wiki/Demos">http://code.google.com/p/cicindela2/wiki/Demos</a><br />
<br />
デモソースを svn switch で。<br />
<br />
<pre class="prettyprint" style="background-color: #eeeeee; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; font-size: 12px; max-width: 70em; overflow: auto; padding: 0.5em;"><span class="pln">cd </span><span class="pun" style="color: #666600;">/</span><span class="pln">home</span><span class="pun" style="color: #666600;">/</span><span class="pln">cicindela</span><span class="pun" style="color: #666600;">/</span><span class="pln">misc
perl create_init_sql</span><span class="pun" style="color: #666600;">.</span><span class="pln">pl </span><span class="pun" style="color: #666600;">--</span><span class="pln">db_name</span><span class="pun" style="color: #666600;">=</span><span class="pln">cicindela_clip_db </span><span class="pun" style="color: #666600;">|</span><span class="pln"> </span><span class="str" style="color: #008800;">/usr/</span><span class="kwd" style="color: #000088;">local</span><span class="pun" style="color: #666600;">/</span><span class="pln">mysql</span><span class="pun" style="color: #666600;">/</span><span class="pln">bin</span><span class="pun" style="color: #666600;">/</span><span class="pln">mysql </span><span class="pun" style="color: #666600;">-</span><span class="pln">uroot</span></pre>
<div>
<span class="pln"><br /></span></div>
私はmysqlでいつもの調子でパスワードの設定していたので<br />
<div>
<pre class="prettyprint">perl create_init_sql.pl --db_name=cicindele_clip_db | mysql -u root -p
</pre>
で実行した。</div>
<div>
<br /></div>
<div>
次のデータインポートで問題が。</div>
<div>
<br /></div>
<div>
<blockquote style="background-color: white; border: 1px solid rgb(128, 128, 128); font-family: Verdana, Osaka, sans-serif; font-size: 13px; letter-spacing: 1px; line-height: 19px; margin: 1em 2em; padding: 10px;">
<div style="margin: 0.5em; padding: 0px;">
DBD::<a class="keyword" href="http://d.hatena.ne.jp/keyword/mysql" style="border-bottom-color: rgb(208, 208, 208); border-bottom-style: dashed; border-bottom-width: 1px; color: black; text-decoration: none;">mysql</a>::st execute failed: The table 'item_similarities' is full [for Statement "</div>
<div style="margin: 0.5em; padding: 0px;">
insert into item_similarities (item_id1, item_id2, score)</div>
<div style="margin: 0.5em; padding: 0px;">
...</div>
<div>
<br /></div>
</blockquote>
<br />
なにこれ?</div>
<div>
ぐぐると先人はおりますもので。</div>
<div>
<a href="http://d.hatena.ne.jp/pomo123/20090529/1243550046">http://d.hatena.ne.jp/pomo123/20090529/1243550046</a></div>
<div>
<br />
mysqlサーバのメモリ不足。。。</div>
<div>
microの600MBサーバにapache + mysql やっちゃってるよってことで、smallにインスタンスタイプ変更。</div>
<div>
<br /></div>
<div>
で、service mysqld start したらエラー。</div>
<div>
<br /></div>
<div>
tail -f /var/log/mysql/error.log 見ると</div>
<div>
<br /></div>
<div>
<pre class="code" style="background-color: #3d3d3d; border: 0px; color: whitesmoke; font-family: Monaco, Consolas, 'Courier New', Courier, monospace, sans-serif; font-size: 14px; line-height: 1.5; outline: 0px; overflow: hidden; padding: 20px; vertical-align: baseline; white-space: pre-wrap; word-break: break-all;"><a class="keyword" href="http://d.hatena.ne.jp/keyword/InnoDB" style="-webkit-transition: opacity 0.3s ease, border, color, background; background-color: transparent; border-bottom-color: rgb(222, 222, 222); border-bottom-style: solid; border-bottom-width: 1px; color: #ff4545; margin: 0px; overflow: hidden; padding: 0px; text-decoration: none; vertical-align: baseline; word-break: break-all; word-wrap: break-word;">InnoDB</a>: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
<a class="keyword" href="http://d.hatena.ne.jp/keyword/InnoDB" style="-webkit-transition: opacity 0.3s ease, border, color, background; background-color: transparent; border-bottom-color: rgb(222, 222, 222); border-bottom-style: solid; border-bottom-width: 1px; color: #ff4545; margin: 0px; overflow: hidden; padding: 0px; text-decoration: none; vertical-align: baseline; word-break: break-all; word-wrap: break-word;">InnoDB</a>: than specified in the .cnf file 0 268435456 bytes!</pre>
</div>
<div>
<br /></div>
<div>
こんな感じのエラーがね。</div>
<div>
<a href="http://teketeke55.hatenablog.com/entry/2011/12/04/125227">http://teketeke55.hatenablog.com/entry/2011/12/04/125227</a><br />
<br />
おっしゃるとおりにやってみる。</div>
<div>
<br /></div>
<div>
<span style="background-color: white; color: #3d3d3d; font-family: Helvetica, Arial, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'MS Pゴシック', 'MS PGothic', sans-serif; font-size: 14px; line-height: 25px;">/var/lib/</span><a class="keyword" href="http://d.hatena.ne.jp/keyword/mysql" style="-webkit-transition: opacity 0.3s ease, border, color, background; border-bottom-color: rgb(222, 222, 222); border-bottom-style: solid; border-bottom-width: 1px; color: #3d3d3d; font-family: Helvetica, Arial, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'MS Pゴシック', 'MS PGothic', sans-serif; font-size: 14px; line-height: 25px; margin: 0px; overflow: hidden; padding: 0px; text-decoration: none; vertical-align: baseline; word-break: break-all; word-wrap: break-word;">mysql</a><span style="background-color: white; color: #3d3d3d; font-family: Helvetica, Arial, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'MS Pゴシック', 'MS PGothic', sans-serif; font-size: 14px; line-height: 25px;">/</span><a class="keyword" href="http://d.hatena.ne.jp/keyword/mysql" style="-webkit-transition: opacity 0.3s ease, border, color, background; border-bottom-color: rgb(222, 222, 222); border-bottom-style: solid; border-bottom-width: 1px; color: #3d3d3d; font-family: Helvetica, Arial, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'MS Pゴシック', 'MS PGothic', sans-serif; font-size: 14px; line-height: 25px; margin: 0px; overflow: hidden; padding: 0px; text-decoration: none; vertical-align: baseline; word-break: break-all; word-wrap: break-word;">mysql</a><br />
<div style="background-color: white; border: 0px; color: #3d3d3d; font-family: Helvetica, Arial, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'MS Pゴシック', 'MS PGothic', sans-serif; font-size: 14px; line-height: 25px; outline: 0px; padding: 0px; vertical-align: baseline;">
ib_logfile0</div>
<div style="background-color: white; border: 0px; color: #3d3d3d; font-family: Helvetica, Arial, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', メイリオ, Meiryo, 'MS Pゴシック', 'MS PGothic', sans-serif; font-size: 14px; line-height: 25px; outline: 0px; padding: 0px; vertical-align: baseline;">
ib_logfile1</div>
<br />
上記をmvする。</div>
<div>
<br /></div>
<div>
mysql起動したら正常に立ち上がった。</div>
<div>
<br /></div>
<div>
もう一度データインポートしたら今度はちゃんとつっこめたみたい。</div>
<div>
<br />
次に設定の_common.pm で datasouce => ["", "", ""] の2つ目ユーザ名と3つ目パスワードを自分のサーバ設定に変更。</div>
<div>
<br /></div>
<div>
で、batch.pl を起動。<br />
<br />
うおーい!<br />
モジュールたらんぞ!<br />
<br />
これCPANからインスコ。<br />
<a href="http://isann0330.tumblr.com/post/30788996849/vps-1g-centos6-2-unixbench">http://isann0330.tumblr.com/post/30788996849/vps-1g-centos6-2-unixbench</a></div>
<div>
<br /></div>
<div>
で、もっかい。<br />
やったー動いたー!</div>
<div>
<br /></div>
<div>
apache 起動してURL叩いたらなんかそっけいない数字の羅列が。</div>
<div>
<br /></div>
<div>
どうやらこれでOKぽい。</div>
<div>
<br /></div>
<div>
まああとはこのリコメンド結果のIDを自サイトのコンテンツと紐付けてかっこよく表示してやればリコメンドの出来上がり!ってわけで。</div>
<div>
<br /></div>
<div>
設定は大変でした。</div>
<div>
<br /></div>
<div>
おわり。</div>
<div>
<br /></div>
<div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-70262412238391158652012-08-31T02:31:00.005+09:002012-08-31T02:31:49.149+09:00[java]JavaでPDF出力やりたいことはなんとなくPDF出力。<br />
POIでさわって動的に作ったExcelをJODConverterでLibreOffice経由してPDFに出力できるとそれっぽいなっと。<br />
<br />
やり方や考え方はここで示してくれている通りです。<br />
<a href="http://d.hatena.ne.jp/s-ishigami/20110520/p1">http://d.hatena.ne.jp/s-ishigami/20110520/p1</a><br />
ただ、いくつかハマったのでメモしときます。<br />
Webでやる前に下記のようにコマンドラインで確認すればまあ問題ないと思いますので、コマンドラインまでのメモになります。<br />
<br />
■環境とか<br />
<br />
ubuntu-12.04-server-amd64.iso<br />
java version "1.6.0_24" (OpenJDK)<br />
JODConverter2.2.2<br />
LibreOffice 3.5<br />
<br />
■手順<br />
<br />
<br />
<div>
1.フォントをインストール</div>
<br />
sudo apt-get install otf-ipafont<br />
これやらないと日本語が豆腐になります。もちろんなりました。<br />
<a href="http://gihyo.jp/admin/serial/01/ubuntu-recipe/0153">http://gihyo.jp/admin/serial/01/ubuntu-recipe/0153</a><br />
<br />
2.LibreOfficeをインストール<br />
<a href="http://d.hatena.ne.jp/pochio_pochiyama/20110126/p1">http://d.hatena.ne.jp/pochio_pochiyama/20110126/p1</a><br />
<br />
<blockquote class="tr_bq">
<pre style="background-color: #ededef; border: 1px solid rgb(221, 221, 221); color: #555555; overflow: auto; padding: 0.5em 0.8em;">$ sudo apt-get purge "openoffice*.*"
$ sudo add-apt-repository ppa:libreoffice/ppa
$ sudo apt-get update
$ sudo apt-get install libreoffice libreoffice-gnome libreoffice-l10n-ja
</pre>
<div>
<br /></div>
</blockquote>
add-apt-repository がなかったので。<br />
<a href="http://vmem.jp/2010/11/10/add-apt-repository%E3%81%8C%E3%81%AA%E3%81%84/">http://vmem.jp/2010/11/10/add-apt-repository%E3%81%8C%E3%81%AA%E3%81%84/ </a><br />
<blockquote class="tr_bq">
<pre style="-webkit-box-shadow: rgba(0, 0, 0, 0.0585938) 0px 0px 10px; background-color: #fdf6e3; background-image: url(http://vmem.jp/images/noise.png?1330591829); background-position: 0% 0%; border-bottom-left-radius: 0.4em; border-bottom-right-radius: 0.4em; border-top-left-radius: 0.4em; border-top-right-radius: 0.4em; border: 1px solid rgb(231, 222, 195); box-shadow: rgba(0, 0, 0, 0.0585938) 0px 0px 10px; color: #586e75; font-family: Menlo, Monaco, 'Andale Mono', 'lucida console', 'Courier New', monospace; font: inherit; line-height: 1.45em; margin-bottom: 2.1em; overflow: auto; padding: 0.8em 1em; vertical-align: baseline;">$ sudo aptitude install python-software-properties</pre>
</blockquote>
<br />
3.LibreOfficeをサービスで起動<br />
<a href="http://www32.atwiki.jp/parepan/pages/144.html">http://www32.atwiki.jp/parepan/pages/144.html</a><br />
<blockquote class="tr_bq">
<pre style="background-color: #f4f4f4; background-image: url(http://img.atwiki.com/image/037flower/menubg.gif); background-position: 0% 100%; background-repeat: repeat no-repeat; border-color: rgb(216, 216, 216) rgb(216, 216, 216) rgb(216, 216, 216) rgb(235, 114, 253); border-style: solid; border-width: 1px 1px 1px 4px; color: #505050; font-family: fixed; font-size: 12px; line-height: 18.233333587646484px; margin-bottom: 1em; margin-top: 1em; padding: 7px 7px 7px 11px; white-space: pre-wrap; word-wrap: break-word;">結論・・・・
OpenOfficeは「2.4.1日本語版のRPM, JRE付き」を使用した。
OOo_2.4.1_LinuxIntel_install_wJRE_ja.tar.gz
解凍してX-windowからsetupを実行してインストールした。
OpenOfficeをサービスで起動する場合は
# soffice -headless -accept="socket,port=8100;urp;" -nofirststartwizard
※「-nofirststartwizard」で起動しないとダメです。
jodconverter-2.1.1を使う。
java -jar jodconverter-2.1.1/lib/jodconverter-2.1.1.jar test.ppt test.pdf
</pre>
<div>
<br /></div>
</blockquote>
私の環境ではオプションの指定で怒られたので、こんなコマンドでした。<br />
soffice --headless --accept="socket,port=8100;urp;" --nofirststartwizard<br />
<br />
実はフォントをこのあとにインストールしてサービス起動し直さず、文字化けの豆腐が直らない直らないとわめいておりましたw<br />
この手順通りにすれば豆腐にはならないです。<br />
<br />
4.JODConverterをインストール(というかzip解凍)<br />
<a href="http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/">http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/</a><br />
<br />
DLするのはこれ。<br />
<a class="name" href="http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/jodconverter-2.2.2.zip/download" style="-webkit-tap-highlight-color: rgb(0, 119, 170); background-color: white; color: #006699; font-family: sans-serif; font-size: 13px; line-height: 18px; margin: 0px; outline: none; padding: 0px; text-decoration: none; vertical-align: baseline; white-space: nowrap;" title="Click to download jodconverter-2.2.2.zip">jodconverter-2.2.2.zip</a><br />
<br />
tomcatやjettyで使うならこれ。<br />
<a class="name" href="http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/jodconverter-webapp-2.2.2.zip/download" style="-webkit-tap-highlight-color: rgb(0, 119, 170); background-color: whitesmoke; color: #006699; font-family: sans-serif; font-size: 13px; line-height: 18px; margin: 0px; outline: none; padding: 0px; text-decoration: none; vertical-align: baseline; white-space: nowrap;" title="Click to download jodconverter-webapp-2.2.2.zip">jodconverter-webapp-2.2.2.zip</a><br />
<br />
5.JODConverterを実行して変換<br />
<a href="http://chipmunkland.blog104.fc2.com/blog-entry-198.html">http://chipmunkland.blog104.fc2.com/blog-entry-198.html</a><br />
<br />
java -jar jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar input.xls output.pdf<br />
<br />
<br />
ここまでできればきっとWebアプリでの連携もできると思います。<br />
フロントエンドのWebアプリでリクエストを受けて、その内部でlocalhost:8080 的なサーバにリクエストレスポンスでバイナリを受け渡すか、Webアプリ内でシェルを実行するかの違いかな。<br />
初めてやったんですが、なかなかおもしろかった。<br />
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-18886207945379564422012-08-30T11:00:00.002+09:002012-08-30T11:00:51.852+09:00[IntelliJ IDEA]カーソルがおかしくなったときに見直す設定<div>
こんなカーソル(あとから知ったがcaretというみたい)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvLoUBpNX5CJCnO0XhbAMDWCUkarge51oYFnXKuSQp0J123NQKeMRS2et8JFN6IJBiIIjwJK2M9YMjm-cinpgkeIt8-OmgfwxmmSY99v-s4ZTtf7i8DkOKWgr9f9Pdx9atFqQkEM00NkwG/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2012-08-30+10.51.39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvLoUBpNX5CJCnO0XhbAMDWCUkarge51oYFnXKuSQp0J123NQKeMRS2et8JFN6IJBiIIjwJK2M9YMjm-cinpgkeIt8-OmgfwxmmSY99v-s4ZTtf7i8DkOKWgr9f9Pdx9atFqQkEM00NkwG/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2012-08-30+10.51.39.png" /></a></div>
<div>
<br /></div>
<div>
こんな感じに戻す</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVmj4nMCJJPrbu10XLgTjA9BHAMHinBMY3nSguQ6iVaVA3GK9rGuXvKBWB9LrK1VE-SQNmUXSVZg1zCuCe_Zslhf5SJ-SU8X0XJTbw9AaFcEAHczfKoVankRShCQERHxj59VUZbNRM6tvl/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2012-08-30+10.53.25.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVmj4nMCJJPrbu10XLgTjA9BHAMHinBMY3nSguQ6iVaVA3GK9rGuXvKBWB9LrK1VE-SQNmUXSVZg1zCuCe_Zslhf5SJ-SU8X0XJTbw9AaFcEAHczfKoVankRShCQERHxj59VUZbNRM6tvl/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2012-08-30+10.53.25.png" /></a></div>
<div>
<br /></div>
<div>
これなんでかなー?と必死だったけど自分で実は設定していたという…</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj42VJkO85goFFihB8GW37wK-JWAkY5xb7d2NWtpSUEG22DK2siAGfgLXqCqBPR5w17up6CtWA1EA35g5SavPuSwuJB6hoRsdH3LjGfM60j8SV2Qe2g4BjTLv6uQ7FtqIBgWHektF5OOkC7/s1600/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2012-08-30+10.53.03.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj42VJkO85goFFihB8GW37wK-JWAkY5xb7d2NWtpSUEG22DK2siAGfgLXqCqBPR5w17up6CtWA1EA35g5SavPuSwuJB6hoRsdH3LjGfM60j8SV2Qe2g4BjTLv6uQ7FtqIBgWHektF5OOkC7/s320/%25E3%2582%25B9%25E3%2582%25AF%25E3%2583%25AA%25E3%2583%25BC%25E3%2583%25B3%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%2583%25E3%2583%2588+2012-08-30+10.53.03.png" width="320" /></a></div>
<div>
<br /></div>
<div>
Use block caret の設定を非チェックにしたら元に戻った。</div>
<div>
Column Selection Mode とか windows の 上書きモードみたいなんかと思ったけどもっと初歩だった。</div>
<div>
<br /></div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-41746638618045102202012-08-27T13:57:00.000+09:002012-08-27T13:57:24.076+09:00[python]py2exe で RuntimeError: EndUpdateResourcepython setup.py py2exe でエラーが。<br />
<div>
<br /></div>
<blockquote class="tr_bq">
RuntimeError: EndUpdateResource: 指定されたデバイスまたはファイルを開けません。</blockquote>
<div>
なんだこれ。</div>
<div>
<br /></div>
<div>
<a href="http://www.velocityreviews.com/forums/t739609-py2exe-problem.html">http://www.velocityreviews.com/forums/t739609-py2exe-problem.html</a>
</div>
<div>
<br /></div>
<blockquote class="tr_bq">
<table align="center" border="0" cellpadding="0" cellspacing="0" id="post4164564" style="background-color: #363636; color: #363636; font-family: arial; font-size: 11px; width: 100%px;"><tbody>
<tr valign="top"><td class="pbmiddle" id="td_post_4164564" style="background-color: #ededed; font-size: 12px;"><div class="pbmessage" style="color: #273d49; font-size: 13px; padding: 6px 13px;">
<div class="KonaBody" id="post_message_4164564">
Turns out it was anti-malware software (panda cloud) i installed that interferred with the creation of the executable.<br />
Since i uninstalled the software everything works smooth.</div>
</div>
</td><td align="center" class="pbright" rowspan="3" style="background-image: url(http://www.velocityreviews.com/forums/images/misc/pbrightbg.gif); background-repeat: no-repeat repeat; font-size: 12px; width: 14px;" width="14"></td></tr>
</tbody></table>
</blockquote>
<div>
ウイルスソフト?</div>
<div>
一時的にオフにしてやってみるとできたー。</div>
<div>
<br /></div>
<div>
マジでか。</div>
<div>
<br />
setup.py はこんなやつ。</div>
<div>
<br /></div>
<pre class="prettyprint"># -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe
py2exe_options = {
"compressed": 1, #圧縮する
"optimize": 2,
# "bundle_files": 2,# dllとexeが別
"bundle_files": 1,# 1ファイル
}
setup(
options = {"py2exe": py2exe_options},
name="hello",
console=["hello.py"],
# data_files=[("static", glob.glob("static\\*.html")), ("templates", glob.glob("templates\\*.html"))],
zipfile = None,
)
</pre>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-23237670196797308562012-08-22T20:08:00.003+09:002012-08-22T20:08:38.055+09:00[other]現在の緯度経度からタイムゾーン取得やりたいことはまさにこれ。<br />
<br />
<a href="http://qa.atmarkit.co.jp/q/2309">http://qa.atmarkit.co.jp/q/2309</a>
<br />
<br />
qa内での引用元はstackoverflowのこれ。<br />
<br />
<a href="http://stackoverflow.com/questions/5584602/determine-timezone-from-latitude-longitude-without-using-web-services-like-geona">http://stackoverflow.com/questions/5584602/determine-timezone-from-latitude-longitude-without-using-web-services-like-geona</a>
<br />
<br />
<blockquote class="tr_bq">
<ul style="background-color: white; border: 0px; font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 14px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin: 0px 0px 1em 30px; padding: 0px; vertical-align: baseline;">
<li style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;">Download the <a href="http://download.geonames.org/export/dump/cities15000.zip" rel="nofollow" style="background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">database of cities</a> from geonames.org</li>
<li style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;">convert it to a compact lat/lon -> timezone list</li>
<li style="background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline; word-wrap: break-word;">use an <a href="http://en.wikipedia.org/wiki/R-tree" rel="nofollow" style="background-color: transparent; border: 0px; color: #4a6b82; cursor: pointer; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">R-Tree</a> implementation to efficiently lookup the nearest city (or rather, its timezone) to a given coordinate</li>
</ul>
</blockquote>
って言ってる。<br />
<br />
この都市情報はすげー役に立つ。<br />
データはタブ区切りのデータになっているのでExcelやらawkやらで必要なところだけを切り取る。<br />
私は3行目の都市名、5行目の緯度、6行目の経度、18行目のタイムゾーンだけの簡易リストを作る。<br />
<br />
この次が…。<br />
R-Treeのロジック作れってあるんだけど<br />
二分木レベルお勉強中の自分のレベルじゃわからず…。<br />
<br />
pythonにはrtreeなんてパッケージもあるよう。<br />
これみてないけど、これつかっても解決できるかもしれない。<br />
<a href="http://shibaok.net/index.php?prog%2Fpython%2Frtree">http://shibaok.net/index.php?prog%2Fpython%2Frtree</a>
<br />
<br />
データをMySQLとかにつっこんでとりあえずプロトタイプを作りたいのでオーダーやフルスキャンをおそれずにこれを参考にさせてもらった。<br />
<a href="http://ziddy.japan.zdnet.com/qa6032321.html">http://ziddy.japan.zdnet.com/qa6032321.html</a><br />
<br />
<blockquote class="tr_bq">
<div class="datail_tex qa_tex" style="background-color: white; color: #333333; font-size: 14px; line-height: 1.8; margin-bottom: 10px; margin-top: 10px; padding: 0px; word-wrap: break-word;">
DBに保存している緯度経度リストが格納されているテーブル名が「location」<br style="margin: 0px; padding: 0px;" />緯度が「latitude」フィールド、経度が「longitude」フィールドに格納されていたとしまして<br style="margin: 0px; padding: 0px;" />以下のようなSQL文を実行すれば結果はだいたい近い順に並びますので<br style="margin: 0px; padding: 0px;" />その一番上が一番近い1件となります。<br style="margin: 0px; padding: 0px;" /><br style="margin: 0px; padding: 0px;" />SELECT * FROM `location` ORDER BY ABS(`latitude` - [調べたい緯度]) + ABS(`longitude` - [調べたい経度]) ASC</div>
</blockquote>
適当にテーブルを作る。<br />
<br />
<br />
mysql> create table location ( city varchar(255), latitude double(10,5), longitude double(10,5));<br />
<br />
さっき作った簡易リストをロードデータにして取り込み。<br />
<br />
<br />
mysql> LOAD DATA LOCAL INFILE 'C:\\Users\\user\\Desktop\\city_lat_long_timezone.txt' INTO TABLE location FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;<br />
<br />
これで引用したクエリにlimit 1 とかつけて投げれば期待値は返る。<br />
パフォーマンス…。<br />
<br />
<br />
<br />
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-77496755085780211912012-08-20T16:17:00.000+09:002012-08-20T16:19:01.976+09:00[python]rietveld で UnicodeEncodeError<pre class="prettyprint">UnicodeEncodeError : 'ascii' codec can't encode characters
</pre>
<br />
このエラーそのものは、pythonでマルチバイト文字を扱ってるとよく起きる。<br />
rietveld で diff を登録して View しようとするとエラーでトレースバックでこれが表示。<br />
どうしてだろうと思いながら原因は明白だった。<br />
SVNリポジトリのパスにマルチバイト文字を含んでいたら。<br />
日本でSVNリポジトリに日本語文字列を含んでることって可能性としては低くないはず。<br />
<br />
解決するには、 models.py の fetch_base 関数で result = urlfetch.fetch(url) にてHTMLレスポンスを期待してるところをエラーにならんようにする。<br />
エラーにならんようにするには、単純に unicode の url 変数にマルチバイト文字が含まれているのでうまいことその部分をエンコードしてやる。<br />
urlparseを使って回避してみた。<br />
<br />
<br />
<pre class="prettyprint"> try:
url_list = urlparse.urlparse(url)
url_path = url_list[2] # URLパスを取得
url_path = urllib.quote(url_path.encode('utf-8')).decode('utf-8') # URLパスのマルチバイト文字をURLエンコード
# TODO パラメータもURLエンコード
new_url_list = list(url_list)
new_url_list[2] = url_path # URLパスをエンコードしたunicode型の文字列に入れ替え
url = urlparse.urlunparse(new_url_list) # URL生成
result = urlfetch.fetch(url)
except urlfetch.Error, err:
msg = 'Error fetching %s: %s: %s' % (url, err.__class__.__name__, err)
logging.warn('FetchBase: %s', msg)
raise FetchError(msg)
except Exception:
raise Exception('error')
</pre>
<br />
こんな感じにしました。<br />
そもそもURLにマルチバイト文字を含めるなっつうことですね。<br />
<br />
あと、私の環境ではHTTPステータスが401です。<br />
これどうしたもんか。<br />
Basic認証は実装されてない感じ?<br />
<br />
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-63875348905788416872012-08-14T18:09:00.000+09:002012-08-14T18:09:45.932+09:00[プロキシ]burp suite ことはじめburp suite を使う場合、SSL通信をプロキシでとめて中身を参照したり変更したりするのだと思います。<br />
その前提で設定とか。<br />
<br />
burp suite は javaアプリなので実行環境としてJavaをインスコしときます。<br />
<br />
java -jar burpsuite.jar とかでプロキシを起動します。<br />
<br />
次に、ブラウザ(Chrome)でプロキシ設定をします。<br />
<br />
WindowsならIEのインターネットオプションみたいなのがでるのでLANの設定から localhost 8080 に。<br />
もちろん、プロキシのオプションタブでポートとかいじってるのであればそれを指定。<br />
Macなら環境設定のネットワークが表示されるのでプロキシタブでWebプロキシ(HTTP) と 保護されたWebプロキシ(HTTPS)を選択。<br />
localhost:8080 とか 127.0.0.1:8080 とかを入力。<br />
<br />
これで準備OK、なんですが、最近のブラウザは証明書のホストと通信先ホストが違うのをちゃんと知らせてくれるのですが、今回ばかりはこれが邪魔なので無視する設定にしたい。<br />
<br />
<a href="http://chrome.half-moon.org/43.html#qd1d616c">http://chrome.half-moon.org/43.html#qd1d616c</a>
<br />
<br />
Chromの起動オプションに --ignore-certificate-errors を追加して起動。<br />
SSLセキュリティ証明書のチェックもろもろを無視するので危ないオプションです。<br />
本当に必要なときだけに限定して使います。<br />
<br />
※もしこのオプションがない場合、一度HTTPSなページを踏んでブラウザで信用する、みたいにすればOKです。ただ、Facebookとかは画像などのリソースをCDNかなんかで提供してるっぽくて、ホストが違うのでChromeのDeveloperToolのNetworkなどで赤色のエラーのものをクリックしていっこいっこ承認していかないといけないです。Twitterは戻るボタンだけで信用する的なボタンもなかったです。<br />
<br />
<a href="http://isann0330.tumblr.com/post/29100326054/google-chrome">http://isann0330.tumblr.com/post/29100326054/google-chrome</a>
<br />
<a href="http://isann0330.tumblr.com/post/29099902605/q-a-okwave">http://isann0330.tumblr.com/post/29099902605/q-a-okwave</a>
<br />
<a href="http://isann0330.tumblr.com/post/29099837506/chrome">http://isann0330.tumblr.com/post/29099837506/chrome</a>
<br />
<br />
●mac<br />
open -a Google\ Chrome --args --allow-file-access-from-files<div>
<br /></div>
<div>
●windows</div>
<div>
call "chrome.exe" --args --allow-file-access-from-files</div>
<div>
<br /></div>
<div>
みたいなかんじで。</div>
<div>
<br /></div>
<div>
●javaコマンド</div>
<div>
java -jar -Dfile.encoding=UTF-8 burpsuite_v1.4.01.jar </div>
<div>
<br /></div>
<div>
一応、文字コードしていしとく。なくてもいけるっぽいけど。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
仕組み</div>
<div>
<a href="http://2comnet.blog87.fc2.com/blog-entry-100.html">http://2comnet.blog87.fc2.com/blog-entry-100.html</a>
</div>
<div>
おもしろいよ。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
おわり。</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<a href="http://root99.blogspot.jp/2008/06/webburpsuite.html">http://root99.blogspot.jp/2008/06/webburpsuite.html</a>
</div>
<div>
<a href="http://robotbrain.cocolog-nifty.com/blog/2009/07/httpsburpsuite-.html">http://robotbrain.cocolog-nifty.com/blog/2009/07/httpsburpsuite-.html</a>
</div>
<div>
<a href="http://www.magata.net/memo/index.php?BurpProxy%A4%F2%BB%C8%CD%D1%A4%B7%A4%BFWEB%A5%A2%A5%D7%A5%EA%B8%A1%BA%BA">http://www.magata.net/memo/index.php?BurpProxy%A4%F2%BB%C8%CD%D1%A4%B7%A4%BFWEB%A5%A2%A5%D7%A5%EA%B8%A1%BA%BA</a>
</div>
<div>
<a href="http://blog.rocaz.net/2011/02/1167.html">http://blog.rocaz.net/2011/02/1167.html</a>
</div>
<div>
<a href="http://kikuz0u.x0.com/blog/?p=261">http://kikuz0u.x0.com/blog/?p=261</a>
</div>
<div>
<br /></div>
isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-18967531286918252462012-08-07T22:11:00.001+09:002012-08-07T22:11:05.109+09:00[apache]basic authBasic認証するメモ。<br />
<div>
<br /></div>
<div>
なんかこの界隈、やたらとアカパスを作成するWEBのツールあるけどなんでだろう。</div>
<div>
もちろん、 htpasswd でやります。</div>
<div>
<br /></div>
<div>
. 手前味噌でげすが、<a href="http://isann.blog2.fc2.com/blog-entry-260.html">http://isann.blog2.fc2.com/blog-entry-260.html</a> の「■Basic認証アカウントを作成」を参考に。</div>
<div>
<br /></div>
<div>
<span style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: x-small; line-height: 20px;">.htpasswdファイル作成</span><br />
<span style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: x-small; line-height: 20px;">(1).htpasswdファイルを新規作成する場合</span><br />
<pre class="prettyprint lang-sh" style="background-color: white; border: 1px solid rgb(136, 136, 136); color: #555555; line-height: 20px; padding: 2px; white-space: pre-wrap; word-wrap: break-word;"><span class="pun" style="color: #666600; margin: 0px; padding: 0px;">[</span><span class="pln" style="color: black; margin: 0px; padding: 0px;">root@centos </span><span class="pun" style="color: #666600; margin: 0px; padding: 0px;">~]</span><span class="com" style="color: #880000; margin: 0px; padding: 0px;"># htpasswd -b -c /etc/httpd/conf/.htpasswd centos centospassos ← .htpasswdを作成してユーザーcentosを登録する</span>
<span class="typ" style="color: #660066; margin: 0px; padding: 0px;">Adding</span><span class="pln" style="color: black; margin: 0px; padding: 0px;"> password </span><span class="kwd" style="color: #000088; margin: 0px; padding: 0px;">for</span><span class="pln" style="color: black; margin: 0px; padding: 0px;"> user centos</span>
</pre>
<br style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: small; line-height: 20px; margin: 0px; padding: 0px;" />
<br style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: small; line-height: 20px; margin: 0px; padding: 0px;" />
<span style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: x-small; line-height: 20px;">(2)既存の.htpasswdファイルへユーザーを追加する場合</span><br />
<pre class="prettyprint lang-sh" style="background-color: white; border: 1px solid rgb(136, 136, 136); color: #555555; line-height: 20px; padding: 2px; white-space: pre-wrap; word-wrap: break-word;"><span class="pun" style="color: #666600; margin: 0px; padding: 0px;">[</span><span class="pln" style="color: black; margin: 0px; padding: 0px;">root@centos </span><span class="pun" style="color: #666600; margin: 0px; padding: 0px;">~]</span><span class="com" style="color: #880000; margin: 0px; padding: 0px;"># htpasswd -b /etc/httpd/conf/.htpasswd centos centospassos ← 既存の.htpasswdへユーザーcentosを登録する</span>
<span class="typ" style="color: #660066; margin: 0px; padding: 0px;">Adding</span><span class="pln" style="color: black; margin: 0px; padding: 0px;"> password </span><span class="kwd" style="color: #000088; margin: 0px; padding: 0px;">for</span><span class="pln" style="color: black; margin: 0px; padding: 0px;"> user centos</span>
</pre>
<br style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: small; line-height: 20px; margin: 0px; padding: 0px;" />
<br style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: small; line-height: 20px; margin: 0px; padding: 0px;" />
<span style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: x-small; line-height: 20px;">(3)ユーザー登録確認</span><br />
<pre class="prettyprint lang-sh" style="background-color: white; border: 1px solid rgb(136, 136, 136); color: #555555; line-height: 20px; padding: 2px; white-space: pre-wrap; word-wrap: break-word;"><span class="pun" style="color: #666600; margin: 0px; padding: 0px;">[</span><span class="pln" style="color: black; margin: 0px; padding: 0px;">root@centos </span><span class="pun" style="color: #666600; margin: 0px; padding: 0px;">~]</span><span class="com" style="color: #880000; margin: 0px; padding: 0px;"># cat /etc/httpd/conf/.htpasswd ← ユーザー登録確認</span>
<span class="pln" style="color: black; margin: 0px; padding: 0px;">centos</span><span class="pun" style="color: #666600; margin: 0px; padding: 0px;">:</span><span class="pln" style="color: black; margin: 0px; padding: 0px;">vYwnFfo59lI</span><span class="pun" style="color: #666600; margin: 0px; padding: 0px;">/</span><span class="pln" style="color: black; margin: 0px; padding: 0px;">c</span>
</pre>
<br style="background-color: white; color: #555555; font-family: Verdana, sans-serif; font-size: small; line-height: 20px; margin: 0px; padding: 0px;" />
あとは、<a href="http://kensakuyoke.web.fc2.com/Basic.html">http://kensakuyoke.web.fc2.com/Basic.html</a> を参考にさせて頂いて</div>
<div>
.htaccess に</div>
<div>
<br /></div>
<div>
<div class="p-gray" style="background-color: whitesmoke; border: 1px solid rgb(204, 204, 204); color: #4f4f4f; font-family: Arial, Helvetica, 'MS Pゴシック', Osaka, 'ヒラギノ角ゴ Pro W3'; font-size: 12px; line-height: 19px; margin: 0em 20px 20px; padding: 15px;">
AuthUserFile <span class="red" style="color: #996666; margin: 0px; padding: 0px;">/etc/httpd/conf/.htpasswd</span><br />
AuthGroupFile /dev/null<br />
AuthName "<span class="blue" style="color: #536d89; margin: 0px; padding: 0px;">Please enter your ID and password</span>"<br />
AuthType Basic<br />
require valid-user(ここに改行をかならず)</div>
</div>
<div>
<br /></div>
<div>
こんな感じで。</div>
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-65403615643530022182012-08-07T22:04:00.004+09:002012-08-07T22:04:56.970+09:00[phpMyAdmin]インストール微妙にwindowsの記事しかないので。<br />
まあコマンドラインのほうがレスポンス的にも好きだんけど。<br />
これがないと始まらない人もいるわけで、そういう環境構築をするのですよ。<br />
<br />
httpdからインスコするなら<br />
<a href="http://centossrv.com/apache.shtml">http://centossrv.com/apache.shtml</a>
<br />
ここみながら。<br />
<br />
<blockquote class="tr_bq">
yum -y install httpd<br />
<br />
yum -y install php php-mbstring<br />
<br />
vi /etc/httpd/conf/httpd.conf<br />
<br />
<blockquote class="tr_bq">
AllowOverride None</blockquote>
<blockquote class="tr_bq">
↓</blockquote>
<blockquote class="tr_bq">
AllowOverride All ← .htaccessの許可</blockquote>
<blockquote class="tr_bq">
<br /></blockquote>
</blockquote>
これくらいでhttpdできるとおもふ。<br />
<br />
そのあと、<a href="http://www.dbonline.jp/phpmyadmin/">http://www.dbonline.jp/phpmyadmin/</a> みながら phpMyAdminのターボール落としてきて ほんとうはよくないんだろうけど<br />
とりあえず /var/www/html/phpMyAdmin とかにコピー。<br />
<br />
mysqlのライブラリ云々になるので <a href="http://www.happytrap.jp/blogs/2012/04/08/8779/">http://www.happytrap.jp/blogs/2012/04/08/8779/</a> を参考にしてphp-mysql php-mbstring php-mcrypt とかインスコ。<br />
<br />
そしたら多分いけたー。<br />
<br />
DBサーバがローカルじゃなかったら <a href="http://www.dbonline.jp/phpmyadmin/install/index4.html">http://www.dbonline.jp/phpmyadmin/install/index4.html</a> の 「config.inc.phpの作成」を参考にして host の値を修正。<br />
<br />
service httpd restart や service mysqld restart 忘れずにー。<br />
<br />
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com0tag:blogger.com,1999:blog-8076100496293733703.post-12548634029282100932012-08-07T18:54:00.000+09:002012-08-07T19:35:19.838+09:00[aws]ec2サーバにmroongaインストール<br />
2012-08-07 時点での話で賞味期限は短いですが。<br />
<br />
RDSでは日本語全文検索できないので(多分) ec2サーバに mysql サーバたてて mroongaエンジンで全文検索してみる話。<br />
<br />
ec2サーバをamazon用のLinuxOSにして yum -y install mysql-server すると mysql 5.5 あたりのパッケージになっちゃいまして、<br />
<br />
Can't open shared library '/usr/lib64/mysql/plugin/ha_mroonga.so' (errno: 2 /usr/lib64/mysql/plugin/ha_mroonga.so:<br />
<br />
で怒られる。<br />
DBサーバそのままでどうにかするには<a href="http://list-archives.org/2012/08/02/groonga-dev-lists-sourceforge-jp/groonga-dev-00992-%09mroonga%E3%81%AEinstall-plugin%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/f/2428026747">こちら</a>ですが、私のレベルではついてきませんでした。<br />
環境的にCentOS6 で mroonga 2.0.5 は mysql5.1 からビルドされていて、mysql5.5 はダメっぽい。<br />
<br />
なので、<br />
yum list installed | grep mysql<br />
とかでパッケージを確認して<br />
yum remove mysql-server.noarch mysql55-common.x86_64 mysql55-libs.x86_64 mysql55-server.x86_64<br />
とかで間違ってインスコしたパッケージをアンインストール。<br />
<br />
あと<br />
<br />
% sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-0.noarch.rpm<br />
% sudo yum makecache<br />
<div>
すると404とかになる。</div>
<div>
URLがないので、/etc/yum.repo/groonga.repoの baseurlの値を</div>
<div>
http://packages.groonga.org/centos/6/$basearch/</div>
<div>
とかに変更。</div>
<div>
<br /></div>
<br />
それから、<br />
yum list | grep mysql<br />
で配布されている mysqlパッケージを確認して、運良くAWSのリポジトリに5.1があるっぽいので<br />
yum -y install mysql51.x86_64 mysql51-common.x86_64 mysql51-libs.x86_64 mysql51-server.x86_64<br />
とかで、インスコ。なかったら /etc/yum.repo/ にリポジトリ追加。<br />
あとは、<a href="http://mroonga.github.com/ja/docs/install.html">公式のドキュメント</a>に沿って、<br />
service mysqld start<br />
yum -y install mysql-mroonga<br />
でOK。<br />
mysql -u root<br />
show engines;<br />
でmroongaエンジンがあればOK。<br />
<br />
<br />isannhttp://www.blogger.com/profile/01943476322620276459noreply@blogger.com1