DNSなしでNameVirtualHostの設定を確認する

ドメイン名によってドキュメントルートを切替えるApacheのNameVirtualHost
レンタルサーバーなどではよく使われている手法である。これで問題となるのがテストしたいときにDNS登録されていないとhttpd.conf一番上にある設定が使われてしまうことである。
普通はDNSに登録されているものだが、既存で動いているサイトの設定変更のテストなどをやりたい場合にわざわざDNSを書き換えることなどできないだろう。そんな時に役立つテクニックを紹介する。
答えは簡単で、windowsでもlinuxでもデフォルトではhostsファイルの設定がDNSより優先されるのでhostsファイルに書き換えればいいのだ。
#LAN内からNameVirtualHostの設定を確認する
192.168.x.x www.myserver.com
192.168.x.x www2.myserver.com
192.168.x.x www.hoge.com
こんな感じでNameVirtualHostのServerNameに設定したドメインをIPと対応させればいいだろう。なおDNSはキャッシュされるので(特にWindowsはすぐに反映されない)すぐに変わらないからといって失敗と決め込んではいけない。
自分がレンタルサーバーを利用していてIPアドレスで打ち込んだときとドメイン名で打ち込んだときに違うドキュメントが表示されたらそれはNameVirtualHostの設定で共有されていると考えていい。

カテゴリー: Apache | コメントする

unbreakable linux に注目

Oracleが出すRedHatEnterpriseLinuxクローン
それがunbreakable linux
unbreakable linuxのサポートコストはRedHatEnterpriseの半分になるとの挑戦的なコピーでOracleとRedHatの関係は冷え込んだようだが、実験用途としてはOracleが出しているぐらいだからOracleインストールの基盤としてunbreakable Linuxを選択するのもありかもしれない。バイナリはフリーで配布されている。
サポートでお金を取るってことだ

カテゴリー: Linux | コメントする

UbuntuにOracle Express Editionを入れる

UbuntuはDebianベースなのでDebianのパッケージ管理aptでOracle無償版のExpressEditionを利用できる。

結構インストールはいろいろなLinuxで試したのだが、Debianが一番楽なのは確実にいえる

しかしDebianといえばインストールや運用が大変というイメージがある人も多いのでは(実際は昔に比べれば楽勝なのだが)

その場合はUbuntuLinuxで入れてみるといいだろう。

http://www.rutake.com/wiki/DB/Oracle/ExpressEdition/#g080d2dc

インストールばっかりでその後の運用についての記載が一切ないのでこれからがんばります。

カテゴリー: Linux | タグ: | コメントする

NoClassDefFoundErrorの原因を探る

本番環境にUPする時など環境が変わったときに遭遇しやすいこのエラー

開発時は問題なかったのにいざ本番で出るとびびる上にだいたいそういう時はテンパリモード1000%
なので冷静な判断ができないだろう。

しかし結局のところクラスパスの設定が間違っているというのがほとんどなのでクラスパスを列挙させてみるといい。
たとえばjspなら以下のコードを入れてみる。

<%
//クラスパス表示
String classpath = System.getProperty(“java.class.path”);
java.util.StringTokenizer st = new java.util.StringTokenizer(classpath,”;”);
while (st.hasMoreTokens()){
out.println(st.nextToken() + “<br&gt”);
}

%>

そしてきちんと動く環境のクラスパスと比較してみる。
クラスパスがまったく一緒なのに動かない場合はJARファイルなどのライブラリがきちんと存在しているか?
コンパイル環境ではコンパイルエラーとなるので気づくが、実行環境ではクラスをロードするときまでエラーが出ないので厄介だ。

たいていの場合において開発環境にはたくさんJARファイルが入っていてどれがどれに依存しているかわからなくなって、
必要なJARを本番環境にコピーし忘れてこのエラーに遭遇するというケースも多い。

 

カテゴリー: Java | タグ: , , , | コメントする

Virtual PC 2007 でた!

仮想技術としてはVMwareと双璧をなす存在のVirtualPC

すでに無料化されて久しいが、新バージョンが出ているようだ。まだ日本語ページが準備中なので2007はでたてのほやほや

実は自分が仮想マシン技術にはじめて触れたのがVirtualPC2004の体験版だったわけで、
それ以来VMWarePlayerに浮気してしまったが、久々にインストールしてみることにしよう。

カテゴリー: soft | タグ: , , , | コメントする

いきなりブルーバックがきたらバックアップを

悲劇は突然やってくるやもしれない。

運がよければ再起動で立ち上がってくるが、運が悪ければ別のマシンにつないでデータの救出を図ったことも

でもって今日Let’s Note CF-R3でいきなりブルースクリーンで落ちた。
前回同じ状態に陥った直後に起動不能に陥ったが今回は上がってきたので急いでバックアップ。
どうもタッチパッドのドライバーが悪さをしているようだが・・・

カテゴリー: CF-R3 | コメントする

Linuxで無線LANの敷居が下がった!

一昔前はWindowsのドライバを利用するndiswrapperを使わなければLinuxで無線LANを使うのは困難だった。

かつてndiswapperのインストールに挑戦したが、コンパイルエラーなどがでてそれでもうあきらめてしまっていた。

しかし最近になって状況が一変した。カーネル2.6.17あたりから主要な無線チップのドライバーが組み込まれてるようになったのだ。

ただしファームウェアなどがライセンス上100%
フリーではないのが原因なのかファームウェアの組み込みは自分で行う必要がある場合もある。

自分の無線はCF-R3組込みはipw2200というインテルCentrinoの無線なので割とメジャーかな。
でこいつの場合はUbuntu7.0.4の日本語版を利用する限りにおいてはなんとそのまま設定さえすれば利用できる。

3連休のうち2日は台風で家に篭っていたのでLinuxで無線LANを成功させるまでは家からでない(!?)
意気込みでいろいろなディストリビューションでためしてみた。

わざわざインストール場合失敗したときが癪なので、1CDLinuxでやってみたところ見事連続成功。
後日個別Linuxごとの設定をまとめるとしよう。

カテゴリー: Linux | コメントする

Ubuntu Linux をインストールした

デスクトップLinuxで最近赤丸急上昇なUbuntu

日本語ローカライズバージョンを4時間掛けてダウンロードしてインストール。

ちなみにそのまま1CDLinuxとしても使えるし、そのあとインストールすることもできる。
でも1CDLinuxの立ち上がりが遅いので直接インストールできる方法をあとで調べておこう。

ちなみにMBRにブートローダーを勝手に入れてしまうのが唯一の欠点か?

(注)インストールの最終ステップでgrubのインストール先を指定できることを発見した。

いままでのデスクトップLinuxと違い漢字入力モードの切り替えがwindowsと同じキーでできるようだ。
まだ使いこなしてないのでこれからこまめにレポートしていこうと思う。

ちなみにDebianベースではあるがまったくその面影を感じないほどである。

カテゴリー: Linux | タグ: , , | コメントする

StrutsのActionがスレッドセーフでない証拠

検索キーワードを見ていると相変わらずStrutsのActionがスレッドセーフであるか否かを探していると見られるものが多い。
最近出たStruts2は知らんが、Struts1.x系においては一度作ったActionインスタンスはアプリケーションサーバー(Tomcat等)を再起動するまではずーとプールされる。
ためしにこんなコードをActionクラスのexecuteに入れてみれば一発だ。
System.out.println(this.hashCode());
なんどリロードしてもハッシュコードは一緒。つまり同一インスタンスなので読取専用以外のフィールドは持たせないほうがよいということになる。ユーザー固有の情報(たとえばHttpSessionなど)をフィールドにもたせてActionクラスを作ってしまうと自分一人のテストでは問題が発覚しなくても、結合テスト時などの複数人同時に利用したときに問題が発覚して大慌てになるので注意。
Actionがスレッドセーフでない理由はパフォーマンス的にリクエスト毎にActionをnewするのはよろしくないという設計者の思想があるからしょうがない。
ActionをスレッドセーフにするためにSpringなどのDIコンテナを利用してActionインスタンスをリクエスト固有で生成するようにしていたやり方もある。

カテゴリー: Java | タグ: , , , , | 1件のコメント

WindowsとLinuxインストールが早いのはどっち

Windowsはハードウェアの認識はLinuxに比べると容易だがインストール後のセキュリティパッチあてがひどいものでSP2適用済みにもかかわらずその後81個ものセキュリティパッチを当てさせられて本体インストールに1時間としてもパッチあてにも同じぐらい時間がかかる。
一方Linuxはハードウェアの認識が自動でされないと結構面倒だが、比較的古いシステムにインストールを行うとすべて自動認識されインストール後のパッチ当てもWindows程ひどくはない。とくにサーバー用途でXを入れない場合は10分でインストールが終わる。
というわけでLinuxの圧勝。

カテゴリー: OS | コメントする