ようこそゲストさん

Super Neurotic Junction

メッセージ欄

ID『snjx』で検索

2015/06/04(木) Jenkinsでビルドトリガが設定されているジョブの探し方

2015/06/04 16:53 研究課題snjx
忘れた頃にやってくる。

さて、ちょっとjenkins君をいじる機会があってですね。
ビルド環境が一箇所に集中することで、奴の環境でビルドできたけど俺の環境でビルドできんぞどうなってんだぁ!なんつーことがなくなっていろいろ捗るのだけど、いろんなジョブをみんなが好き勝手に作っていると、けっこう無駄なジョブでいつの間にかリソースを圧迫してたりする。

かと言って、ジョブを整理しようとすると、そのジョブはリポジトリのコミットを監視しながら随時ビルドしてんだ勝手に止めるなどうなってんだぁ!なんつーことになる。

そこで、ビルドトリガを設定されているジョブの探し方をここにメモしておく。

jenkinsサーバにsshなどでログインし、以下のようにコマンド実行。
[root@localhost ~]# cd /var/lib/jenkins/jobs
[root@localhost jobs]# grep -r \<triggers\> */config.xml
まあ、難しいことはなくて、トリガが設定されていなければ、config.xml中のタグが、
<triggers>
ではなく
<triggers/>
となる。triggersタグに何か書いてあるものを探すだけなのね。
出力されたディレクトリの名称が、そのままjenkinsのジョブ名称となるわけよ。

2013/06/17(月) VBScriptで引数を受け取る、VBScriptで正規表現

2013/06/17 19:17 研究課題snjx
やむにやまれぬ事情があって、いまさらながらVBScriptをちょっといじっている。
最初はバカにしていたけど、結構それなりに使えるものだというのはわかってきた。
何でもやってはみるもんだよね。
と、いうことで、2題ほどメモ代わりに書いてみる。

続きを読む

2012/02/26(日) rubyでメッセージボックス

2012/02/26 23:03 研究課題snjx
メッセージボックスというか、Windows Scripting Hostのpopupなんだけど。
ポイントはVbOKOnlyとかの定数を書いているところ。
win32oleの使い方は結構あちこちで書いてあるし、excelなんかが持っている定数をrubyで使う方法なんかは探すと見つかるけど、意外や意外、普通にメッセージボックスを使う方法が結構少なかった。
で、ま、最低限いりそうな部分を書いてみたのさ。
require 'win32ole'
require 'singleton'

class Msgbox
	include Singleton
	# ボタンの種類
	VbOKOnly		= 0		#[OK] 
	VbOKCancel		= 1		#[OK]  [キャンセル] 
	VbAbortRetryIgnore	= 2		#[中止] [再試行] [無視] 
	VbYesNoCancel		= 3		#[はい] [いいえ] [キャンセル] 
	VbYesNo			= 4		#[はい]  [いいえ] 
	VbRetryCance		= 5		#[再試行]  [キャンセル] 
	# アイコン
	VbCritical		= 16	#警告メッセージ アイコン
	VbQuestion		= 32	#問い合わせメッセージ アイコン
	VbExclamation		= 48	#注意メッセージ アイコン
	VbInformation		= 64	#情報メッセージ アイコン
	# ボタン戻り値
	VbOK			= 1		#[OK]ボタン
	VbCancel		= 2		#[キャンセル] ボタン。
	VbAbort			= 3		#[中止] ボタン。
	VbRetry			= 4		#[再試行] ボタン。
	VbIgnore		= 5		#[無視] ボタン。
	VbYes			= 6		#[はい] ボタン。
	VbNo			= 7		#[いいえ] ボタン。
	def initialize
		@wsh = WIN32OLE.new('WScript.Shell')
	end
	
	def open(strText,intSecondsToWait,strTitle,intType = VbOKOnly + VbInformation )
		@wsh.popup(strText,intSecondsToWait,strTitle,intType)
	end
end

msgbox = Msgbox.instance
msgbox.open("hoge",0,"fuga") #デフォ

ret = msgbox.open("hoge",0,"fuga", Msgbox::VbOKCancel + Msgbox::VbCritical ) #OkCancelでやばいアイコン

case ret 
when Msgbox::VbOK
	puts "ok"
when Msgbox::VbCancel
	puts "cancel"
end

続きを読む

1: 『クラス内の定義を削除して、 WIN32OLE.const_load('Visual Basic For Applications...』 (2022/02/28 11:46)

2012/02/23(木) くるくる回る

2012/02/23 24:10 研究課題snjx
深夜に思いついてしまった。
rubyでコマンドラインでくるくる回る。
@str = '(´v` )'

def windmill
	case @str
		when '(´v` )'
		@str='(v`   )'
		when '(v`   )'
		@str='(`    )'
		when '(`    )'
		@str='(      )'
		when '(      )'
		@str='(    ´)'
		when '(    ´)'
		@str='(   ´v)'
		when '(   ´v)'
		@str='( ´v`)'
		else
		@str= '(´v` )'
	end
	print "\r" + @str
end 

20000.times {
	windmill
}

2012/02/12(日) rubyでfso

2012/02/12 15:11 研究課題snjx
ちょっとしたツールを作ったときに、事前調査代わりに小手調べしたコードを書いておく。
日常的な作業を一部自動化させたくて、ちょっとディレクトリの操作をしたかったの。
# 指定したフォルダ以下のサブフォルダを全部出力

require 'win32ole'

def getSubFolders folders
	folders.each do |folder|
		puts folder.Path
		getSubFolders folder.subFolders
	end
end

fso = WIN32OLE.new('Scripting.FileSystemObject')

getSubFolders fso.getFolder(ARGV[0]).subFolders

ARGV[0]ってのはコマンドラインの第一引数をあらわすわよ。

2011/12/26(月) batファイルでメッセージを出す方法

2011/12/26 13:45 研究課題snjx
あー。

いまどきの人って、windowsのバッチファイルなんて使うのかしらなどという疑問は置いておいて。

以前に書いたWindowsってsleepコマンドないんだねーの応用編として、バッチファイルからメッセージボックスのポップアップを出す方法をかいておく。

まぁ、簡単な話で、以下のような感じ。
echo msgbox "メッセージよぉん",vbCritical,"タイトルよぉん" > %TEMP%/msgboxtest.vbs & %TEMP%/msgboxtest.vbs
この内容のバッチファイルを作って実行すると、以下のような感じの画面が出てくる。
msgboxtest.PNG

このワンライナーはいろいろ応用が利きそう。

1: 通りすがり 『すっげぇΣ(・ω・ノ)ノ batにたった1行でポップアップが組み込める! ありがたく使わせていただきます!』 (2013/03/06 10:22)

2: 企業内システム管理者 『まさに探していた例文でした。感謝!』 (2013/04/04 12:11)

3: snjx 『あらまぁこんな古いコンテンツへようこそ。 お役に立てればこれ幸い。 …てことは、あれ?batファイルって結構使ってんのかな。』 (2013/04/22 18:49)

4: ポップマン 『デモで「ポップアップが出たら○○する」という条件を作りたくてこちらに辿り着きました。以前までは、バッチ内で"msg"コマンドを使...』 (2013/07/08 14:58)

5: snjx 『今年に入ってどうしたことでしょうか。 バッチファイルはやってんの?まじ? いや、みなさんそんな断りがないと使えないようなたいそ...』 (2013/07/16 11:43)

6: snjx 『あ、そうだ このバッチそのまま動かすと、%TEMP%にごみが残るので、そこだけお含み置きくださいな。』 (2013/07/16 11:56)

7: 西郷 『参考にさせて頂きました。 助かりました。 ちなみに作成されたvbsファイルを即デリートさせるのって ありだと思いますか? それ...』 (2013/07/17 22:43)

8: snjx 『コストと内容によってどちらでもお好みで。 もともとバッチファイルなんてアドホックな用途ばっかりなんで、上記例題を書こうと思った...』 (2013/07/17 25:46)

9: 西郷 『わかりやすい説明ありがとうございました。』 (2013/07/18 20:38)

10: bbs 『バッチでこんなに簡単にメッセージボックス出せるとは思いませんでした! ありがとうございます。使わせていただきます。』 (2013/12/03 15:18)

11: patchman 『batで強制的に稼働中のプロセスをKillっているbatがあるのですが、何もメッセージなしで使っているので、メッセージが出ればな...』 (2013/12/12 14:45)

12: mize 『感動です。使わせていただきます。ありがとうございます。』 (2014/10/15 15:26)

13: よっちゃん 『すげー』 (2015/01/14 25:58)

14: dada 『参考にさせて頂きます。ありがとうございました。』 (2015/03/05 16:20)

15: gakke 『やっと見付けました。。。(^o^)』 (2015/05/31 14:41)

16: けんし 『とても助かりますた』 (2015/07/25 14:53)

17: かな 『ありがとうございます。使わせて頂きます(^○^)』 (2015/08/08 9:36)

18: hacker(仮) 『ありがとうございます! ってかbat流行ってんのかな?』 (2015/10/03 17:01)

19: ゆうた 『たどり着きました...ありがたく使わせて頂きます。』 (2015/10/11 21:53)

20: ぷげら 『メッセージの改行どうしたらいいでしょう "はてな"&vbCr&"はてな"としましたがだめでした』 (2015/10/23 18:06)

21: ぷげら 『メッセージの改行どうしたらいいでしょう "はてな"&vbCr&"はてな"としましたがだめでした』 (2015/10/23 18:06)

22: ぷげら 『&じゃなくて+でだきますた』 (2015/10/24 11:48)

23: snjx 『ぷげらさん、すみませんめったに自分のとこ見に来ないので見逃していました。 自己解決なさったようで何よりでした。』 (2015/10/28 14:07)

24: ・w・ 『@if(0)==(0) ECHO OFF echo ■BATによる前処理です。■ cscript.exe //nologo //...』 (2016/05/10 10:37)

25: snjx 『おーなるほど、batファイルの中でcscriptを読んじゃうわけですね。 これは面白い。 http://computer-tec...』 (2016/05/16 11:27)

26: 通りすがり 『なるほど、ありがとうございました! …だけでは何なので、ご参考まで バッチファイルのエスケープはハットです.>20さん、見て...』 (2016/07/29 12:01)

27: Uk45.ckw 『お、おお(感激 友達に送るウイrいやいやメッセージのために使わせていただきますw』 (2016/08/03 10:42)

28: snjx 『…なぜ、この記事だけこんなに伸びてるんだろう。』 (2016/08/10 11:11)

29: 通行人 『ありがたやありがたや 使わせていただきます!』 (2016/09/16 17:18)

30: すげー 『汎用性すげー いただき!』 (2016/09/26 15:07)

31: ありがたい 『いただきまーす thx!』 (2016/10/25 18:32)

32: 純白に輝く流星るけぴす√ 『moraimasu』 (2017/06/22 23:04)

33: tyhshi 『AccessVBAだけはかろうじてわかります。自作アプリの第三者のセットアップにAccessを使うなんて変なのでwとりあえずバッ...』 (2018/07/22 13:58)

34: ぱねぇ 『天才現る』 (2020/08/25 9:12)

35: その 『ありがとうもろこし』 (2020/09/08 16:25)

36: コアラ 『なんか文字化けする。』 (2021/03/28 10:49)

37: ほい 『すごいです。感謝』 (2021/09/08 11:09)

38: ゆっくり-games 『UTF-8ではなくANSIで文字を保存すると文字化けしません(それ以外だと文字化けします)』 (2021/11/20 21:50)

39: 匿名くん 『おもろい』 (2024/02/28 10:37)

2011/12/25(日) awstats_buildstaticpages.plが勝手にプレフィックスをつけくさる件について

2011/12/25 18:21 研究課題snjx
なんかねー以前もこの時期に、季節と関係ないネタで更新したよねーほほほ。

さて、自サイトのアクセス解析にawstatsを入れてみたんだけど、若干はまった部分があったのでメモしてみる。
なんでだろ、きっと俺一人じゃないのだろうにあんまり情報がなかった。awsatatsってあんまり使われてないんかな?

まず、現象。

Apacheアクセスログ解析(AWStats)
こちらを参考に、awstatsをインストールしてアクセス解析仕込んだのね。

インストールと設定はおおむねうまくいったのね。で、単発ではちゃんと動くようになったんだけど、どうもなんだか、index.htmlの統計ページから個別の「全リスト」へのリンクが間違ってるくさい。
手順に間違いはないようなのに、404が返ってくるのだ。

ディレクトリの中を見てみると、index.htmlでは「snjx.info.yyyymm.allhosts.html」とかでaタグ書かれているのが、実際のファイルでは「awstats.snjx.info.yyyymm.allhosts.html」なんてファイル名で作られていた。

ありゃー。

で、どうしたのか

これはつまり、統計ページを作るところでaタグが間違っているのか、月別の詳細ページを作るところでファイル名が間違っているのかどっちかだと見当をつけた上で、それぞれどこで作っているのか手順の再検討を始めたわけさ。
で、awstatsreport.shの中身をもにょもにょ読んでいると「awstats_buildstaticpages.pl」ってのが実際のファイル作成を担っている模様。ははぁawstatsを直接キックしているわけじゃないのね。

直接、awstats_buildstaticpages.plをたたいて、あれこれ実験してみてよくわかったけど、こいつが詳細ページのファイル名に勝手にawstatsとかつけるくさい。そのくせ、統計ページのaタグはホスト名から始まっているだけなのだ。悪さをしているのはこいつ。

で、けっきょく、awstats_buildstaticpages.pl を修正した。
446行目くらいを以下のように。

# Launch all other awstats output
for my $output (@OutputList) {
    my $command="$smallcommand -output=$output";
    print "Build $output page: $command\n";
    $retour=`$command  2>&1`;
#    $OutputFile=($OutputDir?$OutputDir:"")."awstats.$OutputSuffix.$output.$StaticExt"; # 勝手につける文言を削除
    $OutputFile=($OutputDir?$OutputDir:"")."$OutputSuffix.$output.$StaticExt";
    open("OUTPUT",">$OutputFile") || error("Couldn't open log file \"$OutputFile\" for writing : $!");
    print OUTPUT $retour;
    close("OUTPUT");
    $cpt++;
    push @pages, $OutputFile;    # Add page to @page for PDF build
}

続きを読む

2011/03/23(水) 災害時のシナリオについて

2011/03/23 10:06 未分類snjx
今回の件でとりあえず直近の課題として、手持ちのバックアップが根こそぎぶっ飛ばされたときのことを考えないといけなくなった。

それはもちろん原子力のことを念頭においてるんだけど、ほかの分野でも同様だと思う。たとえばそうだな、住民基本台帳のデータが流されちゃったことなんか、モロにそれじゃないか?

ただ、そういった表に見える課題とは別に…いや、その背景にもうひとつ重要なテーマが隠されているような気がしてきた。

災害時の対策を検討するときに、何かしらのシナリオを想定することって、どれだけ妥当性があるもんだろうか?

2011/01/05(水) Windowsってsleepコマンドないんだねー

2011/01/05 17:04 研究課題snjx
Windowsのコマンドシェルって、意外と基本的な機能がなかったりして使いにくいよね。
sleepとかさ、リソースキット入れると使えたりするけどさ、そういうの面倒じゃん?
いや、そりゃ、WSH使えば何だってできるよ?できるけどさ、なんか微妙に大げさな気がしない?

ほら、Railsで試作とかしてるとさ、ちょっとローカルで動かしてみたい時ってあるじゃん?
そういう場合は、WEBrickキックしーの、立ち上がりきるまで待ちーの、ブラウザ立ち上げーのってマウスでカチカチすんのだるいじゃん?そういうの一発で起動しときたいじゃん?UNIX系のOSだったらそれぞれのステップで1行書けばすむ話じゃん?たかだかこの程度でVBScriptやJavaScript書くの面倒じゃん?

んなこんなで、できるだけ簡単にバッチファイルを書いてみたのが続きのやつ。

続きを読む

2011/01/04(火) 仕事始め

2011/01/04 12:02 ごあいさつsnjx
今年の山陰地方は数年ぶりの大雪で、年末年始はあちこちで混乱があったことを記述しておく。
松江市の方々で交通が遮断されたり停電したりした割には、仕事始めはたいしたトラブルもない通常の週明けであったことよ。

善哉善哉。

2010/11/18(木) ちなみにー

2010/11/18 13:25 ごあいさつsnjx
ここって見てる人いる?

1: snjx 『いーなーいーよーねー。』 (2010/11/24 17:58)

2010/08/17(火) 楽観的ロックと悲観的ロック

2010/08/17 14:41 研究課題snjx
音楽の話題ではないよ。

railsで、DBのレコードロックについてちょっと調べた。

ruby on railsが提供するレコードロックは楽観的ロックと悲観的ロックの2種類がある。
この、いかにも直訳調な名称もどうかと思うけど、たいがい二つ並べて解説されているのでなんかこうよく似たものと思われがち。ところがこの二つ、実は使いどころがまったく違うシロモノだったって話。

続きを読む

2010/07/07(水) あーなんか今年もこんな感じ

2010/07/07 21:57 ごあいさつsnjx
しごとがいそがしくなって、あーなんつーかね。
今年もこんな感じで進んでいきそうですな。

2010/01/12(火) 【急募】グーグルアドワーズの粋で鯔背な利用法。

2010/01/12 22:57 電波受信snjx

【急募】グーグルアドワーズの粋で鯔背な利用法。

Googleさんから、こんなお手紙もらいました。Googleアドワーズの無料お試し券5000円分です。


CCI20100112_00000_small.png

続きを読む

2010/01/01(金) 明けましておめでとうございます。

2009/12/31 24:06 ごあいさつsnjx
本年も変わりませず宜しくお願いします。

去年はこちらはほとんど放置プレイでした。今年も多分こんな調子で行くと思います。
ま、ちょこちょこtwitterやtumblrはいじっていると思いますので、その辺冷やかしてみてください。

積ん読をちょっと切り崩さないとなー。

2009/12/24(木) rubyで複数のrsyncを、パスワード入力とともに実行。最後にcrontabに登録

2009/12/24 23:27 研究課題snjx
なんかすげーひさびさの更新が、こんな味も素っ気もない記事ですな。
…最近なんかイベントがあったはずなんだけど、よくわかりませんな。中止になったんじゃないですか?

外部コマンドを実行するとパスワード入力を求められちゃう

さて、ある事情があって、異なるサーバ間でデータの同期を取る必要がありいろいろ細工してみた。
rsyncコマンドで対象ファイルを指定すればいいんだけど、その際に厄介なことは、パスワードの入力が求められること。
一回限りだったらそれでも別にいいんだけど、できればcronに突っ込んで1時間ごとに実行したい。
rsyncコマンドを実行する際にパスワード入力をさせない方法は幾つかあるようだけど、どれも面倒そう。こういう運用は2ヶ月ほどの予定で、それ以後は同期元のサーバは停止するので、わざわざrsyncデーモンを走らせるとかの処置は、やってもいいけどちょっとモチベーションがわかない。
本格的なバックアップサーバを用意するわけではないので、このままrubyで外部コマンドを実行する簡単なスクリプトを組んでおきたい。

で、スクリプトを組む上でのポイントは
  • 複数のrsyncコマンドを実行する
  • パスワードを入力する
  • 成功失敗に関わらず、実行結果をログに出す
  • ひとつのコマンドが失敗しても次のコマンドを実施する
ほんとうだったらここで、スクリプト中のパスワードも隠蔽したいけど、まあ、同期先も元も俺ひとりが管理しているし、コードの中に平文でもいいか。
こういう対話的な処理をrubyで実現する場合、ptyとexpectを利用するのが定番らしい。

続きを読む

1: snjx 『参考までに』 (2016/01/14 10:09)

2: snjx 『↑URLを参照のこと』 (2016/01/14 10:09)

2009/06/26(金) rubyでamazonから書籍検索

2009/06/26 16:44 研究課題snjx
ISBNではなくて、作者やタイトルから書籍を得るときのサンプルコードも書いておく。

よくわからんのは、req.search( is, rg , 3) と書くと、1から3ページ目まで送ってくること。
2〜5ページ目だけよこせというような使い方ができない。なんでじゃ。使いにくい仕様だ。

続きを読む

2009/06/24(水) rubyでamazonからISBNを検索

2009/06/24 28:58 研究課題snjx
日本語ドキュメントがなくてちと悩んだんだけど、結果的にすごい簡単なことだったのでメモしておく。

rubyスクリプトでamazonのWabAPIを利用して、ISBNから書誌情報を取得するサンプル。

続きを読む

redmine

2009/05/20 21:59 環境snjx

redmineをインストールしてみる

てことで、Redmineをインストールしてみる。
若干の不安含みだけど、一応うごいているようなので、手順をメモ。

最初に動作環境を書いとくけど、このサーバは1strentalserver一番安いVPSプランで動いている(現在はさくらのVPSでやってます)。スペックとしてはメモリが256MBとか若干プア気味だけど、回線や機材の維持にかかるもろもろの手間を考えると、おもちゃとしてはまぁまぁではないかと思う。

もっとも、後で書くけれども、開発環境に使おうとか、なんらかの業務システムを構築して動かそうというのは、この一番安いプランではちょっと無理っぽい。あんまりプアすぎて若干、苦労した。

インストールの手順

必要な手順は、おおざっぱに以下のとおり。
  1. 展開するディレクトリの決定
  2. ダウンロードと環境設定
  3. Passengerのインストール
  4. Passengerとapacheの連携
基本的には、こちらのインストール手順を参考にした。

ただし、このインストール手順はちょっと不親切。いや、たぶん、Railsとか扱っている人には当たり前すぎるようなことをいちいち書いてないだけだと思うけど。

ここに書かれていない手順としてはまず、ダウンロードしてくる前にどこのディレクトリにインストールするかの決定が必要。

方針としては、apacheのDocumentRootが/var/www/htmlなので、まぁなんとなく/var/rails/redmineにおくことにする。で、そこにwgetで本体をダウンロードし、展開する。
もちろん作成したディレクトリにはapacheが書き込めるようにしておく。
[root@vps ~]# mkdir /var/rails/
[root@vps ~]# cd /var/rails/
[root@vps rails]# wget http://rubyforge.org/frs/download.php/54503/redmine-0.8.3.tar.gz
[root@vps rails]# tar xvfz redmine-0.8.3.tar.gz
[root@vps rails]# mv redmine-0.8.3 redmine
[root@vps rails]# chmod -R a+w /var/rails/redmine
[root@vps rails]# cd redmine
[root@vps redmine]# 
あとは、インストール手順database.ymlの設定データベースの初期化などを順次書いてあるとおりに実行すれば基本OK。
とりあえずの設定は、後回しにしておく。なぜなら、
$ script/server -e production
で作り付けの簡易サーバが起動して、3000/tcpでアクセスできるようになるはずだけど、サーバがローカルにあるわけじゃないんでこいつにアクセスするにはiptablesで穴あけなきゃならん。これが面倒なんで後続のPassenngerを入れてから実行する。

Passengerのインストール

さて、ここからがリソース不足に頭を悩ましたとこ。
Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用を基本にした。が、さっそく2ステップ目で引っかかる。
gemでのインストールは無問題だったけど、続きのpassenger-install-apache2-moduleがいけません。
これは実行すると、必要なモジュールを環境に合わせて自動的にコンパイルするんだけど、このコンパイルが途中で落ちる。
virtual memory exhausted: Cannot allocate memory
なんじゃこれ。
メモリの確保ができねんだってさ。

しょうがねえから、service --status-all で動いているサービスを確認して、一個いっこ停めましたさ。
けっきょく、apacheやらsendmailやらすべてとめてしまってほとんどsshdだけがまともに走ってる状態にまでしてやっとコンパイルが通った。
ここんところ、将来的に同様の問題が出るかもしれない。サービスを停めないとコンパイルできないとは、ちょっと厳しいな。まぁべつにクリティカルなもんが走っているわけでもないので停止もrebootも自由自在なんだけどね。

ヴァーチャルホストは使いたくない

Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用に書いてあるapacheの設定だけど、バーチャルホスト前提で書いてある。てことは、別にDNSの立ち上げと設定が必要で、これがめんどい。
ここはいっぱつ、ぐぐる様にお伺いを立てて、ほかの方法を探ることにする。
ごそごそ探してみると、こんなとこを発見。なんだこれでいいのか。
まずは、httpd.confにこんな感じで追加する。めんどうなんでdiffだけ示す。
[root@vps ~]# diff /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bkup
200,210d199
< LoadModule passenger_module /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.2/ext/apache2/mod_passenger.so
<
<
< #
< # Setting of Passenger_module
< #
< PassengerRoot /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.2
< PassengerRuby /usr/bin/ruby
< RailsBaseURI  /redmine
ほいで、DocumentoRootに移動して、作成したredmine環境のpublicをリンクする。
[root@vps ~]# cd /var/www/html
[root@vps html]# ln -l /var/rails/redmine/public redmine
以降、新しいシステムをrailsで立ち上げる場合は、RailsBaseURIを追加し、その名称でリンクを追加しておけばOK。
httpd.confに一行追加し、本体をftpとかでコピーすればいいので、なるほどデプロイは簡単になるよね。

なんか動かない

以上の作業の後、apacheを再起動すると動くはず。
[root@vps ~]# service httpd restart
で、ブラウザでhttp://snjx.org/redmineを開いてみると、こんな感じ。
おーけおーけ。
redmine0.png

じゃ、続き、基本的な設定だけしてしまおうと思いログインすると、あるぇー?
redmine_blank.png
なんかまっちろ。

F5を押して、再描画させると、なんかサーバが応答すらしてくれない。
redmine_sv_stop.png

もうね、どきどきしながらサーバの様子に見行きますとですね、apacheがとまってる。
[root@vps ~]# service httpd status
httpd dead but subsys locked
再起動させる。
[root@vps ~]# service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd:                                            [  OK  ]
再起動させてもけっきょく同じ。最初は一回だけredmineが動作するけど、それ以上なにかリクエストを送信するとapacheが死んでしまう。
なんじゃこれ。

けっきょくリソース不足

topコマンドをつかって目視で観測するという姑息な手段でリソースの監視をしながらredmineを動かしてみると、一瞬メモリを全部食いつぶした直後にapacheとrubyを含むremine関連のプロセスが消えてなくなっている模様。メモリが足りない?メモリリーク?

不明な現象はぐぐる様にお伺いする。ほとんどドラえもんだな、もう。
いろいろ、単語を変えて検索してみるけど、どうもここの[Ruby] Passengerにしか関連するような記述が見つけられなかった。
む〜ん。

スタックサイズはデフォルトでもなんだか十分な値が設定されてるんだけど、まだ足んないのかな。
まぁいろいろ値を変えて動かしてみて何とか動く値をはじき出し、/etc/security/limits.confに書き込んでreboot。

いまはどうにか動いてます。
ときどき、こんな感じでApplication errorが出るけど、
redmine_Appli_error.png
こんなときは落ち着いて、F5で再読み込みさせるとちゃんと動作する(ここが若干、リソースに不安がある)。


ここんとこ、もっとスマートな値の出し方があるはずだけど、まだまだ精進が必要ですな。