RedmineをCentOS5にインストールする際にハマった。

Redmineを使ってみたくてインストールしたけれど、めちゃくちゃはまってしまったのが悲しいのでメモしておきます。

Redmineのインストールの流れは下記のサイトを参照。

 

Redmine 2.2をCentOS 6.3にインストールする手順
http://blog.redmine.jp/articles/2_2/installation_centos/

 

CentOS6が対象の記事ですが、5でもいけるだろ~と思って進めてみたのが泥沼の始まり・・・!
Gemパッケージのインストール時に、「ImageMagickのバージョンが古すぎんだよっ!!」と怒られ、RMagickがインストール出来ませんでした。

CentOS6だとバージョンが新しいものがインストールされるので、問題なく進むみたいです。
必要なバージョンは6.4.9以上、CentOS5で入るものは6.2.8。\(^o^)/オワタ

しかし諦める訳にはいかないので、先人の知恵を頂きにGoogleさんに聞いてみたら、ピッタリ差さる記事がありました。

 

CentOS に ImageMagick, RMagick のインストール
http://akkunchoi.github.io/imagemagick-rmagick-centos.html

 

上記の記事と同様に、rpmコマンドではうまくインストールできなかったので、ImageMagickの公式サイトからソースを持ってきて野良ビルドしました。

インストールする際に、「yum install ImageMagick」を叩いて、古いバージョンをインストールすと同時に依存パッケージを全部インストールし、その後「yum remove ImageMagick」でImageMagickだけ消しておくと楽かもしれません。
それについての参考はこちら↓

 

CentOS 5にImageMagickをインストールときのメモ – 4.5帖の生活
http://takuya1984.hatenablog.com/entry/20120508/1336488683

 

ちなみに、せっかくなので最新のImageMagick6.8.5-3を入れてみました。特に意味は無いですが(´・ω・`)

これで改めて「# bundle install –without development test postgresql sqlite」を叩いたら、今度は

Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘MagickCore’ found

というエラーが(´;ω;`)

でもこれも1個目の記事に書いてあった「$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig」で対応できました。

もう一度「# bundle install –without development test postgresql sqlite」を叩くと、今度はしっかりうまくいったみたいです。

とりあえずよかったよかった。

wsdl2php を使ってSOAPクライアント用PHPスケルトンコードを生成してみる。

「SOAP?WSDL?なんのことかさっぱりわからんちん( -ω-)」状態から半日過ぎ、WSDLと言われる呪文を唱えてWebサーバーとやり取りするんだな、というところまでようやくたどり着きました。

そこで、サーバーに司令を送るためのクライアントを、SOAPサーバーが参照しているWSDL文書をもとにシコシコ書いてたんですが、数行書いたところで早くも折れましたorz

そういえば、風のうわさによれば、Java界隈には「wsdl2java」という、手書きでいちいち書くのを数秒かからずに終わらせてくれる魔法のようなツールがあるというではないですか!
こ、これはもしや「wsdl2xxx」のノリでPHPでも出ているのでは!?とグーグル先生に聞いてみたら、ほんとにそのままのネーミングでありましたwww

wsdl2php – http://www.urdalen.no/wsdl2php/

いかにもパパっと手早くやってくれそうな感じがしますね!!ちょーわくわくしますね!!でも日本語の記事が無いんですね!(´;ω;`)

仕方ないので、俺の雰囲気英語力でそれっぽい記事を読んで見ることにしました。以下に続く使い方はこの記事に書いてある内容と同じなので、読める人はそっちを読んだほうがいいですよ!

IT Workarounds: Simple SOAP client with wsdl2php using WSDL – http://itworkarounds.blogspot.jp/2011/10/simple-soap-client-with-wsdl2php-using.html

ちなみにうちの鯖の環境はこちら↓。

  • CentOS 5.7
  • apache 2.2.3
  • PHP 5.3.3
  • php-pear 1.4.9

※すべてLinuxのコマンドライン上での操作です。
はじめに、公式サイトのsourceforgeから最新のpear.tgzファイルをDLしてきます。

pear install コマンドでインストール。

インストールに成功したら、「wsdl2php」コマンドが有効になっているはずなので、wsdlファイルのパスを投げてPHPコードを生成します。

こうすると、カレントのディレクトリに生成されたPHPコードが置かれているはずです。

 

ここまで特につっかえることなく進んじゃいましたので、「できないよ~(´;ω;`)」って言われてもわかりません!ごめんなさい><

ではでは~(´・ω・)ノシ

jQuery上でFileオブジェクトを取得する方法

机の上にそんなメモが転がっていたので、捨てる前にメモ。

HTML5のFileAPIを通じてファイルオブジェクトを操作する際に、何処をいじったらいいのか分からなかったのでメモしたんだと思われる……。自分で書いたのに思い出せないとかどんだけ前の話なんだ;; 何処で書いたコードなのかも分からない(´;ω;`)

$(‘#input-file’).props(‘files’)[0]

配列要素の中にFileオブジェクトが入っているみたい。ファイルが複数あるなら1,2,3……といった具合にアクセスすればよろし。

参考にしたサイトはこちら。
 jQuery で HTML5 FilesAPI ファイルオブジェクトのプロパティにアクセスするには – MT Systems

リンクが紫色(訪問済リンク)だったのでおそらくそうだろう。さっきから語尾があやふやですが気にしないでください俺がポンコツなだけですm(__)m

そしてもうひとつ、File APIについての記事。参考になると思います。
JavaScriptでファイル操作!? File APIを使いこなそう - @IT

それではこれにて~(´・ω・)ノ

[MySQL]LIKE検索がどれくらい遅いのか確かめてみたら意外と速くて困惑なう。

MySQL LIKE 性能」あたりでググると、「LIKEを使った部分一致検索は比較的遅いから、LIKEを使わなくていいなら使わない方がいい」なんていう記事が目立つので、それならばどのぐらい遅いのか、実際に検証してみました。

……そう、今思えばなぜあんなことをしてしまったのか。そしてなぜこんなことになってしまったのか。未だによくわかりません。

“[MySQL]LIKE検索がどれくらい遅いのか確かめてみたら意外と速くて困惑なう。” の続きを読む

[jQuery][IE] select要素の中身をempty()で消去しても、なぜか画面には反映されない

さすがIE、色々やらかしてくれる……orz

jQuery(ver. 1.7.2)で、selectの子要素(option)を$(‘select’).empty()みたいなコードで消して、その中に違うoption要素を加える、という処理を書いたんですけれど、IE9(または8でも7でも)ではうまく動いてくれないんですね;;

正確に言うと、empty自体はうまく動いています。少なくともDOM上では消えています。しかし、見た目上はセレクトボックスに選択肢がばっちり残っている、という何ともおかしな状態になってしまっています。

仕方ないので、select要素そのものをempty(もしくはremove)して、消したものと同じ場所に新しいselect要素をappendなりしてぶち込みました。この場合はしっかりemptyの結果が反映されるんですよね。なんか無駄なことをやっているような気がしてならない……(;ω;`)