2012-01-27
Nagios3 のインストール
ちょっと Nagios - The Industry Standard in IT Infrastructure Monitoring を見ている(Nagios 3翻訳ドキュメント - Nagios 3翻訳プロジェクト Wiki)
aptitudeインストール
Debian6.0(squeeze) にて、取敢えず aptitudeからパッケージインストール (3.2.1-2)。そのままで入るのは 1+25個のパッケージ。nagios系の名を持つが入らないものもある、プラグイン系とか。そして二つ訊かれる
サンバ入るんだ、ワークグループは適宜調整、近くに Windows系のサーバはないのであんまり使わないような気もする。
パスワードと CGIページ
それで管理用パスワード、綴り間違えちゃったみたいなんで調整、コマンドラインから htpasswd、パスワードファイルの場所注意。
sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin
ただ、それで「w3m localhost/cgi-bin/nagios3/」にアクセスしても、認証通ったあとで「Forbidden」don't have permission 。
それはディレクトリ直でアクセスしてるからの模様、なんかそれっぽい cgi にアクセスすると出てくる「localhost/cgi-bin/nagios3/status.cgi」とか。そしていろいろリンクを辿るといろいろ出てくる、インストール時の設定で localhost はいろいろ少しチェックしてるみたい。
というか index的なものを探すと、「/usr/share/nagios3/htdocs/index.php」のようだ。nagios のアパッチ設定「/etc/apache2/conf.d/nagios3.conf -> /etc/nagios3/apache2.conf」によれば、「Alias /nagios3 /usr/share/nagios3/htdocs」なので、単にホスト直下の「/nagios3/」を見に行けば良いのであった。
さっき直アドレスで見てたのにも cssスタイル掛かってちょっと良いかも。
サイドメニューの Documentation のリンクは切れてる「Not Found」。aptitude で「nagios3-doc」パッケージを持ってくれば何とかなるが、index.html を明示的に指定しないといけないのでリンクの URL の調整とか、開き直したりとか必要かも。内容は基本的に上記翻訳ドキュメントですね。
それから近在のマシンから http で該当アドレスアクセスしても見えた(基本認証は掛かる)、組織内ならそれでいいか。
ホストの登録
ホストの監視だけど、取敢えず「/etc/nagios3/conf.d/hosts.cfg」を作って近在のホスト
define host{
use generic-host
host_name <ホスト名>
}
くらい書くと ping での死活監視はしてくれる。(「/etc/init.d/nagios3 reload」必要)。死活ステータス変更の際にはメールも送ってくれる、特にメールの設定やってないのでローカルのメールだけど。宛先は「/etc/nagios3/conf.d/contacts_nagios2.cfg」のそれっぽいところ、email の項目に「,(カンマ)」でメールアドレス繋げて書けばそっちにも送られるように。
あと「/etc/nagios3/conf.d/hostgroups_nagios2.cfg」に Debian とか web-server とか sshサーバとかのグループがあるのでそのホストを members の項目に「,(カンマ)」で続けてみる。
サービス(PostgreSQL)
近在の PostgreSQLサーバを見るにはどうするのかな。上記インストールで「/usr/lib/nagios/plugins/」に「check_pgsql」ってのはある。チェックコマンドが書いてあるのは「/etc/nagios3/conf.d/services_nagios2.cfg」みたいなんでそこに追記
# check that pgsql services are running
define service {
hostgroup_name pgsql-servers
service_description PostgreSQL
check_command check_pgsql
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
同「hostgroups_nagios2.cfg」にグループを追加
# A list of your pgsql servers
define hostgroup {
hostgroup_name pgsql-servers
alias PostgreSQL servers
members <ホスト名>
}
ホスト名は「hosts.cfg」にも追加しておく
これでチェックしてくれるようにはなるが、DBサーバに template1 データベースとか nagiosユーザ(ロール)探しに行くのでエラーになったり。
「/etc/nagios-plugins/config/pgsql.cfg」にコマンドラインの定義があるのでユーザ(ロール)を指定しようか、パスワードも書くのはつらいかも。コマンドラインオプションは「/usr/lib/nagios/plugins/check_pgsql -h」で出てくる。
ユーザ名やパスワードは「/etc/nagios3/resource.cfg」にマクロ(変数)「$USER<数字>$=<云々>」として定義してやればいいみたい(数字は256までとか)。パーミッション注意、root と nagios 方面でしか見えないようになってる。
[567] ls -l /etc/nagios3/resource.cfg -rw-r----- 1 root nagios 1366 2012-01-27 06:05 /etc/nagios3/resource.cfg
ホスト個別の設定
ホスト固有の監視項目を立てるのはどうするかな。結局サービスの監視という事になるので、「/etc/nagios3/conf.d/services_nagios2.cfg」に個別の項目を立てるか、ローカルホストをいろいろ見てるのは「/etc/nagios3/conf.d/localhost_nagios2.cfg」にそういう記述だし。
# check that top 5 on the <ホスト名>
define service {
host_name <ホスト名>
service_description top -n 5
check_command check_top_by_ssh!5
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
define command {
command_name check_top_by_ssh
command_line /usr/lib/nagios/plugins/check_by_ssh -i /var/lib/nagios/.ssh/id_rsa_nophrase -H $HOSTNAME$ -l shimura -C 'top -l 1 -o cpu -n $ARG1$'
}
サービスの指定で「host_name」を指定するので個別のホストの監視項目になる。
コマンドの定義もしてみた、引数は「!」で続ける模様。sshでアクセスして topで CPU負荷順に 5つ見るの、topのオプション普通と違うかも。sshキーファイルの場所注意、みると「 /var/lib/nagios/.ssh」ディレクトリがあったのでそこに作った、実行ユーザは「nagios」。
2012-01-21 Rails勉強会@東京第70回、出席
Rails’ Wiki - Rails勉強会@東京第70回行って来ました、この項翌日(/22)に書いています。自分Twitterからの追録等(順序調整あり)まとめます。
#railstokyo Rails勉強会@東京第70回 http://t.co/84la9z1E
posted at 13:24:18
#railstokyo Rails勉強会@東京第70回 題決め中
posted at 13:25:35
#railstokyo 前 最近のRails(3.2)、中 OmniAuth のコードリーディング グループ分けしよう、後 chanko, CI テスト, Cofee とその JS のテスト。前13:40-14:40, 中15:00-16:00, 後16:20-17:20
posted at 13:29:09
60分ずつ3講、休み時間も長めに20分
後段のなかの chanko は先ごろクックパッドが公開した cookpad/chanko - GitHub
最近のRails(3.2)
Rails | |
![]()
3.2 がその日の午前に公開されたこともあり
#railstokyo 最近のRails(3.2): mさんのリードで。取り敢えず 3.2 で new してみようか、それとか Change Log を読んで行こうか。 https://t.co/bZaAhFQo
posted at 13:45:53
#railstokyo 最近のRails(3.2): http://t.co/2tRcz0pu のが分かり易いかな。これで行きましょう
posted at 13:47:44
リリースノートを読みましょう。以下はそのとき気に留めたことなど
1.2 What to update in your apps
#railstokyo 最近のRails(3.2): vendor/plugin は 4.0 でなくなるから注意
posted at 13:48:42
gem にするか、そうでないなら lib/my_plugin/* config/initializers/my_plugin.rb
#railstokyo 最近のRails(3.2): mass_assignment_sanitizer なんかあるよ
posted at 13:51:47
3 Major Features
#railstokyo 最近のRails(3.2): developmentモードも目だって早くなったって
posted at 13:54:17
route も速くなった(ジャーニイ)
ログのタグ付け、マルチユーザのときとか見易く
4 Documentation
#railstokyo 最近のRails(3.2): ドキュメントが kindle とか iPhone でも読めるよ
posted at 13:56:19
5 Railties
#railstokyo 最近のRails(3.2): マウントされたエンジンのルートも rake routes で出るようになった
posted at 13:58:32
#railstokyo 最近のRails(3.2): ~/.railsrc に初期設定書けるように
posted at 13:59:47
#railstokyo 最近のRails(3.2): scaffold でコマンドラインでいろいろ就職できるようになった、string がデフォだし、index とか unique とか 桁とか
posted at 14:01:48
修飾 <- 就職
7.1 Action Controller
#railstokyo 最近のRails(3.2): laiout指定で only とか :except とかできるように
posted at 14:03:37
#railstokyo 最近のRails(3.2): send_file が MIME をやってくれるよ
posted at 14:06:45
7.1.1 Deprecations
#railstokyo 最近のRails(3.2): レイアウト指定、親のを探しにいくとか、明示的な指定の方が強く
posted at 14:09:44
7.3 Action View
#railstokyo 最近のRails(3.2): フォームの namespace
posted at 14:14:07
8 Active Record
#railstokyo 最近のRails(3.2): Boolean colummn で on ON とかけるように -> true
posted at 14:18:05
#railstokyo 最近のRails(3.2): マイグレーションのとき SCOPE が指定できる(って)
posted at 14:20:14
#railstokyo 最近のRails(3.2): エンジン使ってるときマイグレーションを限定できる(切り離せる)ということ
posted at 14:21:49
このへんで @a_matsuda さん登場
#railstokyo 最近のRails(3.2): 基本的に今 3.1 で動いてるものは 3.2 でも動く筈。3.2<-3.1 は正常な進歩で大きく振る舞いが変わるようなところはない
posted at 14:25:57
#railstokyo 最近のRails(3.2): 速くなったのと、ルーティング。ルーティングはジャーニィで書き直された。コードが読みやすくなり、速くなった
posted at 14:27:48
#railstokyo 最近のRails(3.2): EXPLAIN。勝手に出てくるの良いですね。変わりにシステム的なところはログに記載されなくなった
posted at 14:29:30
#railstokyo 最近のRails(3.2): 3.2.1 今日出ます。(何かあったらしい)
posted at 14:31:01
#railstokyo 最近のRails(3.2): all_day、all_week、all_quarter、all_year
posted at 14:34:08
#railstokyo 最近のRails(3.2): 全角スペースも blank、ユニコードのスペースっぽいもの全部
posted at 14:35:12
#railstokyo 最近のRails(3.2): 3.2 は基本的に 3.1 の正常進歩系なので、今 3.1 のひとはすぐ 3.2 に上げましょう、なんかあったら報告しましょう Rails側のバグです
posted at 14:41:08
#railstokyo 最近のRails(3.2): この辺で
posted at 14:41:16
OmniAuthコードリーディング
Rails | |
![]()
#railstokyo OmniAuthコードリーディング: 暗黙知を前提に黙々と読み進める方(少なめ)と、ゆっくりめに読む方に分かれて
posted at 15:05:58
ゆっくりめで
#railstokyo OmniAuthコードリーディング: https://t.co/CvdanCns
posted at 15:09:02
#railstokyo OmniAuthコードリーディング: Rails の認証エンジン。strategy を指定するとそれに従って認証をしていく。twiter とか外部認証を使うようなものではもはやデファクトっぽい感じ。
posted at 15:13:16
identityストラテジーを選ぶと普通の IDパスワード認証使える
#railstokyo OmniAuthコードリーディング: 取り敢えずソースのディレクトリの構成を見ましょうか
posted at 15:15:36
lib/ lib/ominiauth.rb lib/omiauth/ lib/omiauth/auth_hash.rb lib/omiauth/builder.rb lib/omiauth/form.rb lib/omiauth/strategy.rb lib/omiauth/strategies/ lib/omiauth/strategies/developer.rb
#railstokyo OmniAuthコードリーディング: README.md を一通り読もうか
posted at 15:18:32
#railstokyo OmniAuthコードリーディング: lib/omniauth.rb
posted at 15:22:23
#railstokyo OmniAuthコードリーディング: あんまり面白くないですね
posted at 15:26:04
#railstokyo OmniAuthコードリーディング: omniauth/form.rb
posted at 15:26:43
#railstokyo OmniAuthコードリーディング: 冒頭たくさん CSS 書いてあってちょっとタメイキ。Rails以外を考えるとこのへんにもおいとくしかないのかな
posted at 15:28:47
#railstokyo OmniAuthコードリーディング: omniauth/builder.rb
posted at 15:32:52
#railstokyo OmniAuthコードリーディング: omniauth/strategy.rb
posted at 15:35:13
#railstokyo OmniAuthコードリーディング: included フック
posted at 15:39:51
http://doc.ruby-lang.org/ja/1.9.3/class/Module.html#included
#railstokyo OmniAuthコードリーディング: この辺でおしまい。あと auth_hash を読めばいいのかな。それから、githubとかで実際に omniauth を使ってるプロジェクト探して事例を読むかな
posted at 16:03:32
CIとテスト
Rails | |
![]()
#railstokyo CI テスト: CI 継続的インテグレーション。継続的結合。
posted at 16:24:31
#railstokyo CI テスト: アプリケーションを継続的に動かそうよ。思想であり、それを補佐するツール。(ジェンキンス)
posted at 16:26:12
#railstokyo CI テスト: かつては自動ビルドとかあったね、最近では自動テスト
posted at 16:27:01
#railstokyo CI テスト: 継続的インテグレーションのインテグレーションと、インテグレーションテストのインテグレーションはちょっと違う。レイヤーが違うというか、同じことなのかもしれないけど、違うところからみてるというか
posted at 16:28:37
#railstokyo CI テスト: そういう立ち位置のもとに、どんなテストをかくのか
posted at 16:30:17
#railstokyo CI テスト: タイミングはいろいろあっていいと思いますけど
posted at 16:35:53
CIの一環としての(統合)テスト、即時でも随時でもバッチでも、自分の信じる(安心できる)タイミングで
#railstokyo CI テスト: CIをしているということをもって何か担保するわけではない。自分たちがバグの(少)ないプロジェクトを続ける駆動でしかない
posted at 16:40:17
Meet Jenkins - Jenkins - Jenkins Wiki
#railstokyo CI テスト: プロジェクトがあるとして、ジェンキンスサーバをたて、リポジトリの場所を教えてやり、シナリオ(シェルスクリプトで数行、cd して rake とか)、そんなものかな、
posted at 16:54:06
Debian -- Package Search Results -- Jenkins
テスト
#railstokyo CI テスト: rspec の文書 relish https://t.co/PEgqatRY 細かいところ、新しいところを確認しにいく
posted at 17:06:27
#railstokyo CI テスト: RSpec : subject 、let と併用してく
posted at 17:09:16
#railstokyo CI テスト: RSpec 主要人物は let 作る、テスト対象とか述語、目立たせなきゃいけないので let。そして
posted at 17:13:37
@moro さんとの一問一答みたいな感じで
Amazon.co.jp: テスト駆動開発入門: ケント ベック, Kent Beck, 長瀬 嘉秀, テクノロジックアート: 本
#railstokyo PC電池切れた、中継終了
posted at 17:23:34
2011-12-25
gem と Rails の Gemfile でのプラットフォーム
Windows (7 64bit Pro. SP1) で Rails してみようかと思ったのだけど(by NougakuDo Manual)、ジェムの sqlite3 を入れる所で。
特に何もしないでいるとエラーになる。
Installing sqlite3 (1.3.5) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
sqlite3 | RubyGems.org | your community gem host を見に行くとウィンドウズ用のバイナリ版もある様なんだけど、どうやってインストールするんだっけ。「gem install --help」をみるとプラットフォームの指定が出来るのか。
Options:
--platform PLATFORM Specify the platform of gem to install
ということで、「gem install sqlite3 --platform x86-mswin32-60」としてみたら何とかなった。
さて Railsの方では、「rails new depot」とかすると、ファイルやディレクトリをいろいろ作った後で最後に「bundle install」になってやっぱり上記と同じエラーになる。ファイルは全部そろっているし、アプリケーションは(能楽堂で)動く、Sqlite3へのデータストアもするんだけど、「bundle install」には失敗する、ジェムの追加が出来ないわけだ。
QA Blog: How to configure gemfile for windows platform によると、Gemfile の中でプラットフォーム指定が出来る模様。はじめ同様に「gem 'sqlite3', '1.3.5', platform: 'x86-mswin32-6'0」としてみたが駄目だった。
The available options are: [:ruby, :ruby_18, :ruby_19, :mri, :mri_18, :mri_19, :rbx, :jruby, :mswin, :mingw, :mingw_18, :mingw_19]
「gem 'sqlite3', '1.3.5', platform: 'mswin'」としたら何とかなった。
NougakuDo 1.2.0 ruby 1.9.3p0 (2011-10-30) [x64-mswin64_100] gem 1.8.13 Rails 3.2.0.rc1
2011-12-17 Rails勉強会@東京第69回、出席
Rails’ Wiki - Rails勉強会@東京第69回行って来ました、この項翌日(/18)に書いています。自分Twitterからの追録等(順序調整あり)まとめます。
#railstokyo Rails勉強会@東京第69回 始まる、自己紹介兼ねてネタ出し中、久々に moro さんのリード
posted at 13:08:25
#railstokyo ネタだし、まとめ
posted at 13:36:20
60分のセッション三つ、始めのは一部屋で、次からは二つに分かれる
#railstokyo 枠1「backbone.js と CoffeScript」
posted at 13:36:41
#railstokyo 枠2「Sprocketsソースコードリーディング」「ログイン周り、Device, OmniAuth」
posted at 13:36:52
#railstokyo 枠3「ビューとコントローラのテスト」「AWS入門」
posted at 13:37:12
#railstokyo NougakuDo 話題にはしたが枠には入らず
posted at 13:37:18
backbone.js と CoffeScript
Rails | |
![]()
#railstokyo 「backbone.js と CoffeScript」
posted at 13:46:02
backbone.js
#railstokyo 「backbone.js と CoffeScript」backbone.jsって何。JavaScript のライブラリ、クライアントサイドでMVCをするよ、モデルは ActiveScriptっぽいので判り易いんじゃ
posted at 13:48:51
#railstokyo 「backbone.js と CoffeScript」backbone.js: backbone.js は jquery に乗ってる(依存してる)
posted at 13:59:11
#railstokyo 「backbone.js と CoffeScript」backbone.js: 例えばバリデーション、サーバ側とクライアント側どっちに置くの? ってサーバ側に書かない訳にも行かないし、 https://t.co/2I8FW8gu
posted at 14:12:04
html5_validators モデルに書いたバリデーションを自動的にクライアントサイドのバリデーションに展開する
CofeeScript
#railstokyo 「backbone.js と CoffeScript」CofeeScript: 概要はいいよね
posted at 14:20:11
#railstokyo 「backbone.js と CoffeScript」CofeeScript: 危険な曲がり角、JavaScript全般、this のコンテクストが難しいんだけど、「=>」演算子とか
posted at 14:24:57
#railstokyo 「backbone.js と CoffeScript」CofeeScript: 慣れると JSよりも良いかも
posted at 14:27:51
#railstokyo 「backbone.js と CoffeScript」CofeeScript: JS と Cofee の相互変換 http://t.co/5k2oIKrX 書いててあれっと思ったときに試すのにいいかも
posted at 14:30:18
3.2
#railstokyo Rails って JSONデータを出し入れしてくるやつだよね
posted at 14:39:46
という方向性も意識している
#railstokyo 3.2 早くなるよ、リファクタリングたくさんやってるし、
posted at 14:41:29
#railstokyo 名前募集: イテレータじゃない map的なもの、ブロックをとってセルフを返す tap ではなく結果の値を返す何か。try をもうちょっとケアした何か、try! _try
posted at 14:49:20
#railstokyo 3.2 の次は 4.0、1.8サポートをやめる、数ヵ月後には?
posted at 14:50:35
ログイン周り、Device, OmniAuth
Rails | |
![]()
#railstokyo 「ログイン周り、Device, OmniAuth」
posted at 15:05:28
#railstokyo 「ログイン周り、Device, OmniAuth」devaice触ったことある人はけっこうある、omniauthは少ない触ったけど動かせるところまでいかなかったとか
posted at 15:08:32
#railstokyo 「ログイン周り、Device, OmniAuth」Deviceとは、ユーザ登録、認証、パスワード忘れとか、いろいろ面倒見てくれる gem。それが10以上のモジュールに分かれてて個別に提供できる、が、その分全体像がつかみにくい
posted at 15:10:48
#railstokyo 「ログイン周り、Device, OmniAuth」OmniAuth、twitter とか facebook の認証をもってくる OAuth 周りとかその辺を良きに計らってくれる gem
posted at 15:12:51
#railstokyo 「ログイン周り、Device, OmniAuth」自前でユーザ管理するなら Device だし、オープンID借りて来るなら OmniAuth だし。でも頑張って両方使うような要求もあり、頑張って使うような何かもある
posted at 15:15:13
OmniAuth 最近のバージョンではローカルのユーザもサポートしたとか
#railstokyo 「ログイン周り、Device, OmniAuth」twitter と facebook 両方同時に使いたいとかどうなんだろう
posted at 15:16:06
#railstokyo 「ログイン周り、Device, OmniAuth」Device、見かけを気にしないサービスなら凄く簡単にできるよね。でも、カスタマイズとか細かいことやろうとすると面倒くさい、ビューとかコントローラとか
posted at 15:19:10
#railstokyo 「ログイン周り、Device, OmniAuth」Device イントラとかで、任せちゃっていいなら凄く楽そう。ちょっと考え方が違う所があると大変
posted at 15:20:04
#railstokyo 「ログイン周り、Device, OmniAuth」3になってからは Device、オープンID系なら OmniAuth。そして最近 sorcery とか聞くが、Deviceがカスタマイズ難しいし
posted at 15:25:32
#railstokyo 「ログイン周り、Device, OmniAuth」あと、いまどきの流行は Ruby Tool Box から https://t.co/ZWl3Ghfn
posted at 15:28:41
#railstokyo 「ログイン周り、Device, OmniAuth」イメージをつかむためにイントロをちょっと流す #209 Introducing Devise - RailsCasts http://t.co/yG5ztlmx
posted at 15:32:40
#railstokyo 「ログイン周り、Device, OmniAuth」なんかメール周りの話(パスワード忘れましたメールの話題から)、MailCatcher 良いよ。日本語メールは UTF-8 、ISO-2022-JP だとはまるよ
posted at 15:55:55
#railstokyo 「ログイン周り、Device, OmniAuth」OmniAuth 、Rails3レシピブック が参考になるでしょう
posted at 15:56:56
#railstokyo 「ログイン周り、Device, OmniAuth」セッションのあいだにその場で Device で認証作ってみました。とか。(認証チェックのコフィルター等、入れた時にいくつか「これを書け」と支持される)
posted at 16:11:19
「指示」<-「支持」
#railstokyo 「ログイン周り、Device, OmniAuth」参考まで http://t.co/ReRW38wn
posted at 16:16:17
AWS入門
Rails | |
![]()
#railstokyo 「AWS入門」 Rails on AWS:
posted at 16:45:13
#railstokyo 「AWS入門」 Rails on AWS: リアルコーチ、ビデオをアップしてコーチにチェックして貰うサービス、Rails on AWS で作った
posted at 16:45:26
#railstokyo 「AWS入門」 Rails on AWS: ビデオとかのストレージも AWS (S3)
posted at 16:45:34
#railstokyo 「AWS入門」 Rails on AWS: 直ぐ使える
posted at 16:45:41
#railstokyo 「AWS入門」 Rails on AWS: 決して安くはない
posted at 16:45:49
#railstokyo 「AWS入門」 Rails on AWS: EC2、マイクロ、Rails的にはちょっとね(内部的にはいいけど、公開するサービスに使うのは難しい、スモール以上)
posted at 16:45:56
#railstokyo 「AWS入門」 Rails on AWS: S3、たくさんダウンロードされると高くなるかも
posted at 16:46:07
#railstokyo 「AWS入門」 Rails on AWS: メール配信はアマゾンではやらない方がいいのかもしれない
posted at 16:46:15
#railstokyo 「AWS入門」 Rails on AWS: 管理コンソール良いよ
posted at 16:47:43
#railstokyo 「AWS入門」 Rails on AWS: AWSユーティリティは Ruby 1.8.7用。別に 1.9.系をビルドして入れる
posted at 16:55:14
#railstokyo 「AWS入門」 Rails on AWS: yum で開発環境入れて、必要なもの持ってきておいて ruby持ってきてビルドして。
posted at 16:58:46
#railstokyo 「AWS入門」 Rails on AWS: 今は amazon-sdk があるよ
posted at 17:01:49
まとめの時間
#railstokyo まとめの時間
posted at 17:22:17
#railstokyo まとめの時間 sprocketsコードリーディング、call から読んで何をしてるのか追ったけど、一通り、sprocketsはつくりヤバイ
posted at 17:24:09
#railstokyo まとめの時間 ログイン周り、取り敢えず Devise
posted at 17:25:41
#railstokyo まとめの時間 ログイン周り、補足、OmniAuth使ったほうがいいよ
posted at 17:27:36
#railstokyo まとめの時間 テストについて、ビューのテスト Capybara Selenium、testunit で Capybara、javascriptのテストも Capybara webkit
posted at 17:30:37
#railstokyo まとめの時間 AWS 料金とか、各種サービスの説明とか、苦労したところとか
posted at 17:32:25
その後は東京Ruby忘年会2011 - 東京Ruby忘年会へ向かう
2011-12-09
PHPのロケール、又はアパッチの環境変数 LANG
PHPにて、コマンドラインを使いたかった。引数をエスケープするのに escapeshellarg() を使ったのだけど、日本語のところが剥ぎ取られてしまった、英数字(それと少しの記号文字)しか残らない。調べてみると、PHP のロケールの設定に合わない文字は通さないという事の様だ。
PHPのロケール
それで PHPのロケールの設定なんだけど、 setlocale(LC_CTYPE, 0) で訊いてみたら「C」だった。(LC_CTYPE についてはマニュアル参照、escapeshellarg() は文字の変換としてこの定数が対応する模様)
で、どうしようか。
PHPプログラム中で「setlocale(LC_CTYPE, 'ja_JP.UTF-8')」と書くのかな、というかこの「C」の値ってどっから来たんだっけ。
アパッチの環境変数 LANG
phpinfo() に依ると、最後の方 Environmentセクションに「LANG C」とある、そこから来てるわけだ。この環境変数はどうしてるんだっけ。
Apache的には SetEnvディレクティブで明示的にセットするというやり方もあり得るが、今度はその設定を何処に書くかという話になる。
/etc/apache2/envvars
ちょっと探したんだけど、Debian 6.0 (codename “squeeze”) では /etc/apache2/envvars で設定していた(grep -r LANG /etc/apache2)。
前述 Environmentセクションにある環境変数は基本的にここで値を与えられているようだ。LANG 関係は
## The locale used by some modules like mod_dav export LANG=C ## Uncomment the following line to use the system default locale instead: #. /etc/default/locale export LANG
文中、初め「the following line」の意味がよく分からなかった、二度目の export文既に Uncomment になってると。直後の default locale 行の事ですね、そうすると default locale を読み、もう一度 LANG を export する。
まあ、そっち方面じゃなくて、ここで明示的にロケールを指定することにしましょう。
export LANG=ja_JP.UTF-8
そしてアパッチ restart 。(reload じゃ効かないみたいなの注意)






http://nagios.x-trans.jp/nagios/index.php/%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%A8%E3%81%9D%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E3%81%AE%E7%90%86%E8%A7%A3
http://nagios.sourceforge.net/docs/3_0/customobjectvars.html