目次へ

Win32チャレンジ リターンズ

UNIX for Win32と呼ばれるシステムでサーバ環境を作ろうとしたのが確か2001年の夏だ。その後Javaというアルティマウェポンを手に入れたわたしはこれに再び挑戦することになった。今度はたぶん結構発展してくれると思うので積み上げ方式。

/3月31日現在なんとか稼働してます/MySQLだけは全然問題なかったヨ/ApacheとWebDAV/J2SEとTomcat/Desktop On Callも再び/サーバはNTワークステーション!/なぜ今よっしゃと始めたのか/なぜ今までWindowsでなかったのか/なぜ今またWindowsなのか/


3月31日現在なんとか稼働してます

そういうわけで約1年ぶりにPowerEdgeが、Windowsサーバとしては約2年ぶりくらい、NT Workstationで動くサーバとしては初めて、なんとかスタートを切った。よく勉強もしないで入れちゃった最新のツールの文字化けや、サーバのリモート制御など、これから取り組んでいかなければならない問題は山積しているが・・・

2003年03月31日

ページ先頭に戻る


MySQLだけは全然問題なかったヨ

MySQL-3.23 for Windows。ダブルクリックでインストールして、c:\WINNT\my.ini(すげえところにあんよな)に以下の設定をする。

[mysqld]
basedir=C:/mysql
datadir=E:/mysql/data

default-character-set=ujis

これでMySQLの場合、さっくりアプリケーション部分はCドライブ、データ部分はEドライブに分けて動作させることができる。

ではコマンドプロンプトから、

mysqladmin create noniworld

で、noniworldデータベースを作る。

さて、以下も全くセキュリティ無視の行動であり、他からのアクセスの試みはないことを前提に、とにかくこのユーザでアクセスできるかどうか試したい場合の設定だ。実用上はパスワードなり細かいアクセス権の設定なりでそれぞれ自衛していただくようお願いする。

mysql noniworld

でインタプリタを呼び出し、

grant all privileges on *.* to noniko;
grant all privileges on *.* to noniko@localhost;

よくローカルホストからのアクセスは特別に拒否されたりする場合が多いので、ローカルからもアクセスしたい場合はわたしはあえて別に明示することにしている。

そうして、この前まで稼働していたUltraサーバから落としてきたばかりのホカホカのダンプファイル(コードもEUC-JPだ)を、Windowsの適当なフォルダにコピーしておき、

mysql noniworld <(該当パス)myDump.txt

でリストアする。
このデータをコマンドプロンプトのmysqlインタプリタ上で見ようとすると文字化けだが、TomcatのWebアプリ上でここからデータを呼び出してJSPなどで表示すればきちんと日本語表示されたというわけだ!

2003年03月31日

ページ先頭に戻る


ApacheとWebDAV

Apacheは今までほとんど使ったことのない2.0だ。これもアプリケーション部分とデータ部分を切り分けたかったのだが、ちょっと時間が切迫していたので、やはり7GのどでかいスペースにApacheごと放り込んだ。そうしてhtdocsフォルダ内に、unixshareというフォルダを作り、これを共有させることにした。

WebDAVの設定だが、わたしがやったのは外部から隔絶されていることを前提としたきわめて無防備な設定であることをお断りしておかなければならない。
WebDAV設定の正しいマニュアルはApacheに付属しているのでそちらをご参照いただきたい。\Apache2\manual\mod\mod_dav.html.ja.jisという文書で、xml文書なのでxml対応のブラウザでないと見れないのがちとアレだが、設定の仕方など全部書いてある。

ここで示すのはとにかくWebDAV共有というものがそもそも機能するかどうかを確認したい応急措置のようなものである。
まず、

G:\Apache2\conf\httpd.conf中で、

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

の2行がコメントアウトされていたので、イゲタを取った。
そうして、以後の部分はひな形もないので、自分で一から書くことになるが、書き方は上記のマニュアルにちゃんと示されている。
ロックファイル用に、適当なフォルダ及び空のファイルを作っておく。今考えるとcドライブに指定しちゃったのちょっとカッコつかないかも。まいっか。どーせうちでほぼのに子一人が使うのにロックが必要なことはあまりなさそーだ。

###WebDAV Settings
DavLockDB c:/TEMP/apache/DAVlock

<Location /unixshare>
Dav On

#以下、ここにアクセス権に関する指定を記すべきである。

</Location>

もう、きーわめていい加減な設定だが、とにかくこうしておいて、SolarisのGnomeのNautilusから

http://power-edgeのアドレス/unixshare

にアクセスして利用できることになった。

Apache2は・・・しかし、これもまた日本語文字バケの問題が生じた!

昔よくApache1.3.いくつ以降とNetscape4.7で文字化けエラーの問題が問われたが、これも今度はエラーではなく、xml等設定ルール上の問題らしい。これについても、調査がまとまり次第御報告〜。

2003年03月31日

ページ先頭に戻る


J2SEとTomcat

J2SDKはどーせだから最新の1.4.02を入れた。Tomcat、これはまあお手のもの・・・というわりには、結構問題アリだった。

最新版のTomcat4.1.18では(そのままだと?)日本語が文字化けした

ええ〜っと。これはまだ「文字化けする」とは断言できてないです。ただ、わたくしの作ったアプリケーションは、euc_jpがネイティヴのUltra上でもこいつで文字化けした。そしてNT上でも・・・Ultraでやっておいてよかったヨ。でなきゃ即、「Windowsでeucのコードを走らせたからだ」と思いこんでしまったに違いない。

つまり、Tomcat4.0系ではない文字化けということダヨ

どうもこれはエラーやバグではなさそうだ。というのも、JSPのスクリプトレット内で設定した日本語については文字化けしないとか、なにか設定上の問題のような・・・これについても引き続き調査を進めることにしています(いい加減なニュース報道みてえだ)。

もうひとつ。本当はCATALINA_HOMEをCドライブ、CATALINA_BASEだけをDドライブにしてDドライブ容量を節約したかったのだがうまくいかなかった。TomcatをNTサービスにして動かしたからなのだろうか?環境変数の指定が反映されなかった。だからDドライブにTomcat本体から全部インストールした。今のところ動作に問題は認められない。

2003年03月31日

ページ先頭に戻る


Desktop On Callも再び

実は問題はもう一つある。サーバであるNTWorkStationのリモート制御はどうするのか。UNIX系には最強のWebminがあったが・・・ここで再びあの、Desktop On Callの登場となった。
以前はずいぶんこれにお世話になったものである。始めたばかりのSolarisやPC-UNIXからNTサーバのファイルにアクセスするとか・・・「東京トホホ会」に最初に出して最初に掲載していただいたのも、Desktop On Callネタだったよな・・・あれからしばらく使わなかったからバージョンアップしてない。アプレットはJava1.1対応である。なんてえらそーなこと言ってるけどあんときはのんのんが「すげーこれJavaで動いてんじゃん」と感動する意味もほとんどわかっていなかったよなー。でも初めてJavaを学習しようという決意を支えたのは「Desktop ON Callのようなすごいものが作れるらしいから」だったわけだから結局・・・・

それはいい。春はいろいろなことを思い出す、わたしにとっては秋よりセンチメンタルな季節だ。とにかくこれで・・・・

実はちょっとオッケーでない。さすがにブラウザのJavaプラグインが旧式Javaのアプレットを処理しきれないのか?クライアントのキー入力を受け付けてくれない場合があるのだ。

特に最初のログインのalt+ctrl+delだ。
今のところ、SolarisのNetscape4.78がなんとか機能している。だが、妙なことに、altキーとctrlキーはリモートホスト側に用意されたスクリーンキー(Windowsクライアントで本体へのダイレクトコマンドと区別するためだ。Solarisには関係ないはずなんだが・・・・)を使わないといけない。この問題は今調査中である。

2003年03月31日

ページ先頭に戻る


サーバはNTワークステーション!

さてそのPowerEdgeにのんのんがセットしておいてくれたOSは

NT4.0 Workstation

なのだ。うちにはNTServerどころか2000Serverまであるんだが、結局32ビットアプリがちゃんと動きかつよけいなものが入ってないこれが最適ということになった。
昔、「NTWorkstationのレジストリを書き換えるとNTServerになる」という悪い噂(ホントらしいだけにさらに悪い)があったようだが、レジストリなんかいじらずとも、オープンソースをチョチョっと入れて主婦でも簡単に、Serverに仕立て上げられれば大笑いだ!

PowerEdgeには9GのSCSI-HDDが2基入っている。これを以下のように分けてもらってある。

Cドライブ 4G システムパーティション
Dドライブ 5G TomcatとWebアプリケーション用

Eドライブ 2G Mysqlのデータ用
Gドライブ 7G Apache WebDAV用

WebDAVはApacheのそれを使うことにした。Tomcatのほうが設定簡単なんだけど、Webアプリケーションの容量が以後膨れ上がる恐れがあるからだ。 

2003年03月31日

ページ先頭に戻る


なぜ今よっしゃと始めたのか

やる気がしないと徹底してやらない、断固としてやらない不屈の精神力を持つわたしが、なぜ2003年の春の今SolarisからWindowsへサーバ環境の移行をよっしゃとやる気になったのか。その理由はただ一つだ。

Javaだゼ

Solarisで全てのアプリケーションをMySQL-Java化しようとしている。これらはWindows版がしっかりそろっている。
唯一の気がかりは文字コードだった。マイモストフェイバリット環境はBlade100なのだ。MySQLにしろJavaにしろ、文字コードを明示的に指定することはできるはず、ではあるが・・・

今BladeのSun ONE Studioで開発中のアプリケーションを、フォルダごとWindowsの該当フォルダにドラッグドロップしただけで、これが日本語も含めさっくり動作するんでなきゃやらないゾ

とわたしは生意気にも宣言した。そして試してみた。euc-jpのSolaris9のSun ONE Studioで、コード指定は全部EUC_JPで作成しコンパイルしたクラスファイルをWindowsのTomcatに与えてみた。MySQLのデータも、Blade上でeucでDumpしたテキストをそのまま、WindowsのMySQLに食わせてみた。

結果何の問題もなく日本語がやりとられた

すっげー!すげーよJava!すげーよMySQL!あと公平に見ればもしかするとWindowsもすげーの鴨!でもすげーんだったら最初からSJISなんか使ってんなヨ!ちなみにこのMySQLデータは付属のコマンドプロンプトからは文字バケだったゾ!でもとにかくさすがライトワンス・ランエニホエアー!でもホイットニー・ヒューストンさんは自分の名前が「ホ」で始まるとは決して思っていないんだろうなきっと!

この、まるでお代官様の無理難題のようなわたしの要求がかくもあっさりと受け容れられてしまった以上、こちらとしても相応の努力を払うモチベーションがモチ上がるというものである。そしてもうひとつの難題ファイル共有もやはり、直接JavaではないがJava経由で結局解決した。それは

WebDAV

Tomcatの勉強をしていたらこの話題が出てきた。Windows側に猫なりApacheなりのwebdavフォルダを作って公開するというわけだ。セットアップは非常に簡単。だがSolaris側からどうやってアクセスするのか。答えは案外すぐに見つかった。

Gnome Nautilus

Windows2000などのファイルエクスプローラと同じ感じでWebフォルダのファイルにアクセスできることがわかった。
これで再びWindowsをサーバにする気合いが思い切り高まったゾ!おまけにいちばんめんどっちい、OS及びドライバのインストール、さらにHDDのパーティション切りまでも、のんのんがやってくれていたのである!一番おいしいとこだけ、のに子にやらしてもらえるというわけだ。なんという愛情!ののろけはともかく、サーバ構築ゴーだッ!

2003年03月31日

ページ先頭に戻る


なぜ今までWindowsでなかったのか

下記の理由は特に目新しい問題とは言えない。ではなぜもっと前にさっさとWindowsでサーバを立てなかったのか。第一の理由は、

Apache-Perl-PostgreSQLをそのままWindowsに載っけるのは難しい

実は以前これは実験を試み、「原則的にはまあできるが、窓野郎に対してそこまで労力を使う気がしない」という結論に達していた。

SolarisからWindowsサーバにアクセスするのは難しい

以前この問題はFTP公開により解決していた。だがそのときはわたしも今ほどSolarisをガシガシ使っていなかった。今のサーバへのアクセス頻度を考えるといちいちFTPかヨ〜というか、わたしはFTPをよく勉強していないのでなんとなくピンと来ない。

だからまあ絶対にできないことは絶対にないのだが、なーんかよっしゃって取り組む気がしない〜、という理由で今まで取り組まなかったのだ。

2003年03月31日

ページ先頭に戻る


なぜ今またWindowsなのか

Solarisでのサーバ環境構築にもだいぶ慣れて来たはずの今になって、なぜまたWindowsにその環境を移行しようとするのか。第一の理由は、

Windowsファイルの管理をUNIXでやるのが大変

まずは耳タコでしょうが半角カナと空白の問題。こちらで使わないようにしていてもどっかのドライバとかマニュアルとかサンプルとか、うっかり入れるとあとあとまで開けないだの消せないだの「ファイルがあります」だの・・・。加えて、アクセス権の問題。Windowsの一部のアプリケーションで作成したファイルを直接Samba共有フォルダに書き込むとなぜか書き込み禁止になったり、明らかにわたしが作ってそこに入れたとしか考えられないファイルの所有者名がのんのんになってたりと、非常に不気味な動きをしてくれる。Sambaをよーく勉強すればそういったトラブルも回避できるのかも知れないが、第二の理由がさらに追い打ちをかける。

以前買ったPowerEdge用のテープドライブがWindowsNTで最も安心して動く

では今までのウルトラサーバ環境ではどうしていたかというと、バックアップだけのためにPowerEdgeにNTを入れていた。UltraのSamba共有ディレクトリをネットワークドライブに割り当てればバックアップのターゲットにそれを指定できる。だが第三の理由というか、それでは

部屋の中サーバだらけじゃん

ということになる。うちみたいな規模なら負荷の全然薄いサーバを分散して使う意味はない。管理が大変だし、いくらヤツらの不祥事によりご迷惑をおかけされているとはいえ、やはり無駄な電力消費は抑えるべきである。

2003年03月31日

ページ先頭に戻る