2012/05/10(木)Apache 2.4 + mod_perl を導入してみた

2017/10/12 04:58 サーバ運営・管理
今年2月にリリースされた Apache 2.4。
まだ置き換えるには時期尚早ではありますが、近い未来 2.0系/2.2系から置き換わっていくのは流れとしては自明なので、取り扱いを確立させるために、弊社の実験サーバにて、2.2.22 から、最新バーション 2.4.2 へ置き換えてみました。

20120510_1.png

付属マニュアルの日本語訳は、現状、2.2 系のものが流用されているようです。
上記のような感じです。

20120510_2.png

perl 5.14.2 + mod_perl 2.0.6 + Apache 2.4.2 + PHP 5.4.2 という組み合わせですが、
mod_perl がまだApache 2.4 には対応しておらず、そのままでは、コンパイル自体が通りません。

既に幾つか言及されていますが、2.2系からの変更が地味に多いです。
正直なところ、しばし嵌りましたorz
気づいた点を列挙してみましょう:

○ apr, apr-util, pcre は、ビルドインで提供されなくなった
  apr 、apr-util、 pcre 、これら3つのユーティリティ は、Apache の構築に欠かせないものですが、それ故 2.2 系までは Apache ソースツリーと一緒に配布されていました。
 なぜか 2.4 系では、これらは提供されなくなり、自前で構築するか、拾ってくる必要があります。
 先ず、apr と apr-util を ここからダウンロードで持ってきて、 apache ソースツリーの srclib ディレクトリ配下にソースツリーごと置きます。
 現在(2012/05/10) のバージョンは、 apr-1.4.6 , apr-util-1.4.1。
#英文ですが、 INSTALL ファイルにそう書いてある模様です。
 ソース配置手順はこんな感じ:
# cd httpd-2.4.2/srclib
# cp ../../apr-1.4.6.tar.bz2 ./
# cp ../../apr-util-1.4.1.tar.bz2 ./
# tar xvzf apr-1.4.6.tar.bz2
# tar xvzf apr-util-1.4.1.tar.bz2
# mv apr-1.4.6 apr
# mv apr-util-1.4.1 apr-util


 apr と apr-utilを事前インストールする方法もあるようですが、筆者の環境ではApache本体のコンパイルそのものが上手くいきませんでした。

○ pcre , expat は ports 等で。
  pcre は 8.20 以降、 expat は 2.0 以降が必要です。
  事前にインストールしておくとよいです。

○ Apache 2.2系では、構築デフォルトが「スタティックリンク」
  Apache 2.4系では、構築デフォルトが「DSO」
→ ソースコードからコンパイルする際、2.2系の configure オプションそのままでは、同じように構築されず、結局は httpd.conf の構文エラーとなって不具合を起こす。
  エンタープライズ系には有益な場面も多いのでしょうが、この変更は「何を勘違いしたか?」的な感覚を覚える。
 2.4系では、明示的に「スタティックリンク」を指定することで、凌ぐ。

○ Apache 2.4 系で アクセス制御の文法が変わっている
20120510_3.png

httpd.conf などのサーバ設定ファイル、.htaccess などの挙動変更設定ファイルは全て見直して、変更する必要があります。

 ここまでは、結構記載があります。
 しかし、嵌ったのは SSI の挙動。どこにも記載がない。

 2.2.22 で普通に動作していた、以下のような SSI が認識されません。
<!--#if expr="'$REMOTE_ADDR' = '/^192.168.1.1/'" -->

 このような評価式は、perl と同じ書式にすることで解決しました。
<!--#if expr="'$REMOTE_ADDR' eq '/^192.168.1.1/'" -->


 構築オプションの問題かもしれませんが、原因はわかりません。
 2.2系までは、pcre が内包された形で配布されていたけれども、2.4系では、予め別途インストールするようになったため、数式評価の部分で挙動が変わったということでしょう。

○ 削除ディレクティブなどがある

 LockFile    ← 文法エラー
 SSLMutex    ← 文法エラー
 DefaultType   ← text/plain の指定は、「無視する」と警告が出る。
 NameVirtualHost ← 「次バーションで削除」という警告が出る。
 
当面は、弊社実験サーバでの運用の留めたいと考えています。

2012/04/19(木)FreeBSD 8.3R リリース

2017/10/12 04:57 サーバ運営・管理
今回は電子メールでのアナウンスが来る前に、たまたま気づいたという状況でした。
苦手な英語の意訳をすると、今回は、

・TCP/IP プロトコルスタックにて mod_cc(9) を実装した。
 これは、プラグイン的に利用できる輻輳制御フレームワーク。

・grdid(8) という、BIOS ソフトウェアにて実現するタイプの RAIDコントローラを追加実装した。

・ZFS サブシステムを SPA Version 28 に更新した。
・Gnome を Version 2.32.1 に、 KDE を Version 4.7.4 に更新した。

あと、 usb(4)にて、USB パケットフィルタをサポート。
とあります。

他には、ネットワークカード絡みで幾つかの修正が入っています。

2012/04/12(木)ノートパソコンのACアタプタ修復

2017/10/12 04:55 電子工作
技術というほどの内容ではないですが・・・

6年くらい使用しているノートPCのACアタプタの先端のDCプラグが、昨年秋頃から断線しかかるようになり、ついに逝ってしまいました。。の様子です:
20120116_1.jpg 20120116_2.jpg

こんなとき、案外ACアタブタごと買い換えたり、新しいノートPCに買い換えたり、、という方々は案外多い。
しかし、当方のようなエンジニアに言わせれば、たかがACアタプタです。部品買ってきて、プラグを交換することで済みます。

こんな感じに修復しました:
20120116_3.jpg

でも素人にはあまりお勧めできませんね。(^^;
同じことを考えた方。自己責任でお願いします。

2012/04/11(水)また移転(引越し)しますた。。

2017/10/12 04:54 雑多なトピック
今回の引越しは、やりたくなかったのですが、事情ありで....orz
移転の案内も出来ずじまいで、関係者の皆様には失礼致します。

とりあえず、近隣の状況です:
20120411_1.jpg
20120411_2.jpg

以前の住居から、直線距離で 300m 程度しか離れていません。
行政的な地域も同じ。

先月上旬に引越しを行い、やっと通常の生活サイクルに戻る目処が立ったところです。
引越し先の契約を済ませ、水抜き栓(寒冷地では普通にある)を回して、水道を通そうとしたところ、水道管の継ぎ目から勢いよく水が噴き出し、一部が水浸し。更にトイレの配水管詰まりが、最初の事件でした。

修理に数日かかりました。風呂とトイレが使えず、これには参った。。orz
今冬シーズンの札幌は記録的な寒さだったのですが、不凍液も凍るほどの寒さだったらしい。誰も住んでいないと、ただでさえ寒い構造の居住家屋(すぐ下の階は倉庫)なので、余計に冷え込む。

寒さ対策にも明け暮れた1ヶ月でした。

2012/04/03(火)温度センサーの改良

2017/10/12 04:53 電子工作
DS1820 というディジタル出力の温度センサーをまる7年使っていますが、管理上、Web 画面 でしか確認できないのは、運用管理上、さすがに不便を感じるので、リアルタイムに直読できるように、ハードウェアを改 造しました。

〔改造前〕
改造前

〔改造後〕
改造後

改造後の画像で、左側がサーバ設置室の室温、右側が外気の気温。
ここ札幌は、4月になったというのに、マイナス(氷点下)の気温です。
マイナス符号が点灯していますが、画像ではわかりにくい。。orz
ここ数年、あまり無かった寒さが続いています。

回路設計・組み上げよりも、収納ケースの加工にえらい時間かかって、結局、着手から10日くらいかかっています。

2012/02/21(火)perl で PDF ファイルのサムネイルを表示

最近、画像加工を扱う案件があり、その案件をこなす上で嵌った内容が・・・orz

perl にて「PDF文書の1ページをサムネイルのように表示させたい」という場合、そのままでは出来ないため、ImageMagick本体、Image::Magick、Ghostscript 、vflib といったようなものを使い、PDF 文書の特>定のページを png か jpeg に変換してブラウザに出力するような CGI を使うことになります。

Image::Magick は Perl モジュールですが、ImageMagick を構築する際、 --with-perl オプションをつけると、一緒にインストールされます。

また、PDF 文書から jpeg や png に変換する際は、Ghostscript と vflib を予めインストールし、ImageMagick を構築する際に

 --with-gslib
 --with-gs-font-dir=/usr/local/share/ghostscript/fonts

を追加すると確実です。

こうして
use Image::Magick
my $pdffile = "sample.pdf[0]" ; # [0] で最初のページという意味になる。
my $tmbfile = "sample.png" ;
my $image_width = 500 ;  # 横幅をpx 数 で。縦は同じ比で拡縮する。
my $pdfobj = Image::Magick->new ;

$pdfobj->Read($pdffile) ;
$pdfobj->Transform(geometry => $image_width) ;
$pdfobj->Write('png:' . $tmbfile) ;


のようにすると出来るはずだが・・・
実際には何も表示されず、サーバのエラーログに
gs: command not found
が出る始末。
どうも /usr/bin/gs へアクセスしようとして、その実体は FreeBSD のポリシー的な内容からして、 /usr/local/bin/gs にあるのが原因らしい。

おそらく、構築時か実行環境の問題なのだろうが、root になって、
# cd /usr/bin
# ln -s /usr/local/bin/gs

とすると、回避する。
すっきりしませんが、これで稼動できたのでとりあえずこのまま。

2012/02/04(土)Apache 普及の功績者が逝去・・・

2017/10/12 04:50 雑多なトピック
知らんかった。。
新聞社だと一定期間経過後記事が消えることが多く、それが嫌なので、無許可転載ご容赦ください。

#でも、新聞社の方から「消せ」と言われたら消さないといけません。
#予めご了承ください。

直接会話や対話をしたことはありませんが、技術系のML Apache-ML の運営などされていましたので、ご存知の方々は多いと思います。筆者もその一人です。

高知新聞 訃報 2012/01/16 より

高知大名誉教授 菊地 時夫氏死去
2012年01月16日08時00分

 菊地 時夫氏(きくち・ときお=高知大名誉教授)14日午後10時16分、肺がんのため高知市内の病院で死去、61歳。埼玉県出身。自宅は高知市曙町1丁目17の8。葬儀・告別式は18日午前10時から同 11時まで、高知市朝倉丙486の1のベルモニー会館朝倉で無宗教。喪主は妻るみ子(るみこ)さん。

2012/02/02(木)本格的に寒い



ここ10年以上、最低気温が -10℃ を記録する日は、シーズン中、数日程度だったのに、今シーズンは連日この有様。

マスゴミ等で発表される気温は、札幌の場合は、都心に程近い札幌管区気象台でのものなので、他の地域より気温は高めになります。

ですから、それを鵜呑みにされてはちょっと困る面もあるわけです。
昨日は「最高気温」が当観測ポイントでは -7.6℃でした。ちなみに最低気温は -12.2℃.

この寒さは、しばらく継続するようなので、今度の週末から始まる雪まつりの雪像や氷像にとってはあまり心配の無い状況です。

2012/01/13(金)FreeBSD 9.0R リリース

2017/10/12 04:48 サーバ運営・管理
本日の朝、アナウンスされました。
欧米圏では特に不吉とされる「13日の金曜日」なんですが、気にしないのかな :-)
例によって、いつもの機械翻訳+意訳を・・・

- 新しいインストーラーに bsdinstall(8) が加えられており、本リリースの一部として提供されるISOイメージによって使用されるインストーラーです。
- Fast Filesystem は、softupdates ジャーナリングをサポートしました。
- ZFS を Version 28 に更新しました。
- 最新の ATA/SATAドライバは、AHCIをサポートし、最新のCAMフレームワークへ移動しました。
- Highly Available Storage (HAST) フレームワークの導入をしました。
- カーネルは、Capsicum Capability Mode (サンドボックス環境提供を主な特徴とする) をサポートしました。
- ユーザレベルでの D-Trace を導入しました。
- TCP/IPスタックは、プラグ接続できる輻輳制御フレームワークおよび、利用可能な5つの輻輳制御アルゴリズム機構ををサポートしました。
- NFSサブシステムを更新し、NFSv3,NFSv2 に加えて、新たに NFSv4 をサポートしました。
- High Performance SSH (HPN-SSH) を導入しました。
- Flattened device tree (FDT) を埋め込み、FreeBSD コンフィギュレーションが単純になりました。
- powerpcアーキテクチャは、Sony Playstation 3 を サポートしました。
- LLVMコンパイラおよび clang を組入れました。
- Gnome version 2.32.1, KDE version 4.7.3 になりました。

今回は、DVD,CD-ROM,bootonly の ISO イメージに加えて、USBメモリから BOOT可能な機器向けに memstick バイナリイメージも提供されているようです。

また、リリースノートを見る限りでは、em(4) [Intel NIC関係]、re(4) [蟹マーク NIC関係]なども更新されているようです。 re(4) では新たに RTL8168E/8111E-VL/RTL8401E がサポートされています。

FreeBSD9 の運用環境への導入は、弊社では、3月中旬頃になりそうです。