さっき焼きそば作ったら、あまりにも慣れっこになっていたせいか
なにも考えずに最終段階の粉末ソースをかけるところまで行ってハッとして
途中で水を加えて蒸し焼きにする段階をすっ飛ばしていたことに気づいて慌てて
追い水をした。



いやぁ、、あまりにもうまいこと麺がほぐれたおかげで水を足すという段階をすっかり忘れるとはね。。。



物事は慣れっこになった時に事故が起こりやすいとはよく言うし、
もしあのまま水分の少ない焼きそば食べてたら体中の水分が奪われてミイラ化していたと考えるとおぞましいですな



道行く人に「あの人なんかミイラっぽくね?」とか陰で言われたりしたら耐えられないよね


あまりにも辛くなって、「マミー助けてー」って言ったら
「あんたがマミーじゃないの」



うわ、くだらねぇ~




長いことほったらかしだったxreaのホームページをいろいろ充実させていこうかと思い、画像操作できるツールを作ってみようと試みました。




【怒涛の環境構築編 in Windows】


まず、手元のxampplite環境では画像操作できるものと言ったら以前も使ったことのあるGDがあります。
これだとあまり細かい操作まではできそうにないので違うものを。


ということでImageMagickを使おうと設定ファイルを見ても、phpinfo()で表示されるページを見てもどうも入ってないっぽい。
結構王道なライブラリだと思ってただけに入ってなかったのは意外。


早速「xampp ImageMagick php」で検索してみると、ImageMagickをインストールして、その後に拡張モジュールのDLLを落としてきて設定すればいいということらしい。


そういえば以前Perlで使うためにImageMagickはインストール済みだったので、あとは拡張モジュールがあればこのミッションは完了するということになる。


いろいろ探しまわって以下のサイトを発見!

php_imagick.dll

ここからTSの方のphp_imagick.dllを落としてきて設定しましょ


PHP設定ファイル(私の環境ではC:\xampplite\apache\bin\php.ini)の


extension_dir = "C:\xampplite\php\ext"

extension_dirに設定されたディレクトリの中に、落としてきたphp_imagick.dllファイルを入れて以下の設定を加えます。


extension=php_imagick.dll

apacheを起動させてphpinfo()を見ると、新たにimagickの表が加わったことを確認できました。∩( ・ω・)∩ばんじゃーい


※空白を含むパスへのインストールだと動かないという情報も検索したらありましたが、私の環境だと大丈夫でした。
もしかしたら以前のインストール後に環境変数「MAGICK_HOME=C:\Program Files\ImageMagick-6.5.5-Q16」をセットしていたからかも知れません。


環境は整った! あとはスクリプトを作るだけさッ


ということでマニュアルを見てみると、Imagickクラスには結構な数のメソッドが用意されていました。
にしても詳細な情報があまりにも載ってないマニュアルですなぁ。。これも省エネ?
それはさておき、こういうのは似たようなものを使った経験があればだいたいの使い方は察しがつく


簡単な流れは以下のようになる。


<?php

// インスタンス作成(内部イメージ化)
$image = new Imagick('/path/to/image-filename');

/* ここでいろいろと画像処理をほどこす */

// 最終的に画像用のヘッダーと画像データを返す
header("Content-type: image/jpeg"); // 他にimage/gifやimage/pngの場合も
echo $image->getImageBlob(); // ファイル化しないで内部イメージを直接ストリームへ
$image->destroy();
exit;

そんなこんなでスクリプトを作り終えて、xreaサーバにアップロードしてアクセスしてみる。


Fatal error: Class 'Imagick' not found in /virtual/doremi/public_html/x/sizedown.php on line 34

あら? 34行目はインスタンス作成している行だけど これって・・
今度はサーバ側に入ってないってこと? もしかして終了?
いやなにか策があるはず!


こういう場合は・・


1)xreaの管理人に入れるように頼んで待とうホトトギス
2)xreaはシェルが使えるから自分で入れようホトトギス
3)もうあきらめて投げ出そうホトトギス

さて、こんなときどうする。
私はここで2ホトトギスを選択しました。ホケキョ♪


それで「xrea imagick インストール」で検索してみると、結構な数のページがヒットしました。
すでに自分でインストールして使ってる方々がいっぱいいらっしゃるようで情報には困らないってやつですね。





【涙の環境構築編 on Linuxサーバ】


xreaコンパネ管理メニュー「ホスト情報登録」から「SSH登録」をして待つこと10分、SSHによるリモート接続をできるようにします。


SSHログイン後、


■ まずはPEARをインストール

> pear config-create /virtual/{ユーザ名}/public_html .pearrc
Successfully created default configuration file "/virtual/{ユーザ名}/.pearrc"

> pear install -o PEAR

{ユーザ名}部分はユーザによって変わる部分になります。


■ imagickパッケージを落としてきて解凍

> pecl bundle imagick-2.1.1

■ imagickへ移動

> cd imagick
-rbash: cd: restricted

> pwd
/virtual/{ユーザ名}

できない あれ?ディレクトリあるよなぁ


> ls
-rbash: /bin/ls: restricted: cannot specify `/' in command names

ぬわにぃぃいい、、lsコマンドが使えない。じゃあ先ほどのcdもできなかったということか。
FTP接続して見てみると確かにそこにはimagickディレクトリが存在していたことが確認できた。


ところでrbashってなんぞや ググる と かなり制限されたbashみたいなものらしい。


うぬぅうううう よっしゃエイリアス設定を取り除く裏技を・・


> \ls

おお、効いた じゃあ


> \cd imagick
-rbash: cd: restricted

ってやっぱりダメか~い! そりゃそうだよね、cdはシェルの内部コマンドだからrbashの手の内だもんね
rbash恐るべし。こんなサディスティックなシェルが今まであっただろうか。


しかたない、chshコマンドでシェル変えるかぁ
とは言っても、最初に設定されたシェルを使い続ける派の私はchshコマンドなんてまず使うことないもので、どうやるんだっけ?


古文書を紐解く


> man chsh

ふむふむ、-sオプションで指定すればいいのね


> chsh -s /bin/bash
Password: *************

へぇ~、パスワードとか要求するのねん


> cd imagick

よし、cdが使えるしこれで自由だぁ~


■ m4ファイルを使って拡張モジュールのビルド

> phpize

> ./configure

> make

■ 出来たてホヤホヤの拡張モジュールをコピる

> mkdir -p /virtual/{ユーザ名}/extension

> cp modules/imagick.so /virtual/{ユーザ名}/extension/

これでサーバ内での作業は終了。 バイバイキーン!


> exit


あとは設定ファイルを用意して、FTPにてアップロードする。


[x/.htaccess]
<Files sizedown.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

特定のPHPをCGIとして起動させる設定


[x/php.ini]
extension_dir = "/virtual/{ユーザ名}/extension/"
extension = imagick.so

拡張モジュールimagickを追加



ちなみにxreaでは自動的に広告が挿入される仕組みなので、スクリプトを使って画像ファイルをダウンロードさせる時でもそのままでは広告が入ってしまって画像ファイルのフォーマットが壊れるのでこういう場合はxディレクトリ以下にスクリプトを置くことでこれを回避することができる。


xディレクトリ以下に置いたスクリプトだと今度は通常の画面表示にも広告が入らなくなるので、広告HTMLを前もって埋め込んでおくことになる。


コンパネ管理メニュー「広告HTML」からHTMLソースをコピってきて前もって画面表示タグの<body>直後に埋め込んでおく。




昨晩のこと、わたしの家にゴキブリが現れた。
中堅どころの体格をしたゴキブリだった。



ゴキブリはエサになるようなものが散乱してないと発生しないものだというのが頭にあったので、発見したときは意外だった。
実に久しぶりに見たゴキブリは水まわりにいた。
どうやら水を飲みにやってきたようだ。
どこから入り込んで来たのかは知る由もない。



そう言えば夜中に「ゴクゴク」と誰かが水を飲むような音がしてたっけ、いやしてないよ
などと、淡白なノリ突っ込みをしたりしてそのときまではなんということはなかったのです。。。



水を飲むという、実に生き物くさい行為をしているこのゴキブリちゃんをもっと近くで見てみようと、
そぉ~っと少しずつ間合いを詰めていき、手を伸ばせば届きそうな距離まで近づいてみました。



するとゴキブリはとっくの昔に気づいてたような感じで、
別に逃げませんよ、みたいな念を放ってくる(ような気がする)



どうせ殺すんでしょ、覚悟はできてるし最期に水ぐらい飲ませてよ
と言わんばかりに逃げようともしない。



そう感じた瞬間、なにもかも見透かされてるような気がして
わたしはヘビに睨まれたカエル状態
こいつにはどうやってもかなわない、まるで火の鳥のような存在に思えた。



妙な間合いはなおも続く・・



ゴキブリはこれまで経験してきた大変な出来事に比べればわたしのこれまでの人生なんて大したことないよと言ってるかのごとく
生命体としてのとんでもない大先輩の片鱗を感じさせた。



もうその時には退治するとかそういう気すら起こらないし、どうぞ好きなだけ水を飲んでいってくださいとすら思うようになっていた。



わたしはこの夏、鉄粉が燃える夏祭りを楽しむよりもはるかに衝撃的な体験をした。