UNIX for Win32と呼ばれるシステムでサーバ環境を作ろうとしたのが確か2001年の夏だ。その後Javaというアルティマウェポンを手に入れたわたしはこれに再び挑戦することになった。今度はたぶん結構発展してくれると思うので積み上げ方式。
/3月31日現在なんとか稼働してます/MySQLだけは全然問題なかったヨ/ApacheとWebDAV/J2SEとTomcat/Desktop On Callも再び/サーバはNTワークステーション!/なぜ今よっしゃと始めたのか/なぜ今までWindowsでなかったのか/なぜ今またWindowsなのか/
そういうわけで約1年ぶりにPowerEdgeが、Windowsサーバとしては約2年ぶりくらい、NT Workstationで動くサーバとしては初めて、なんとかスタートを切った。よく勉強もしないで入れちゃった最新のツールの文字化けや、サーバのリモート制御など、これから取り組んでいかなければならない問題は山積しているが・・・
2003年03月31日
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は今までほとんど使ったことのない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
にアクセスして利用できることになった。
2003年03月31日
J2SDKはどーせだから最新の1.4.02を入れた。Tomcat、これはまあお手のもの・・・というわりには、結構問題アリだった。
ええ〜っと。これはまだ「文字化けする」とは断言できてないです。ただ、わたくしの作ったアプリケーションは、euc_jpがネイティヴのUltra上でもこいつで文字化けした。そしてNT上でも・・・Ultraでやっておいてよかったヨ。でなきゃ即、「Windowsでeucのコードを走らせたからだ」と思いこんでしまったに違いない。
もうひとつ。本当はCATALINA_HOMEをCドライブ、CATALINA_BASEだけをDドライブにしてDドライブ容量を節約したかったのだがうまくいかなかった。TomcatをNTサービスにして動かしたからなのだろうか?環境変数の指定が反映されなかった。だからDドライブにTomcat本体から全部インストールした。今のところ動作に問題は認められない。
2003年03月31日
実は問題はもう一つある。サーバである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日
さてその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へサーバ環境の移行をよっしゃとやる気になったのか。その理由はただ一つだ。
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経由で結局解決した。それは
Tomcatの勉強をしていたらこの話題が出てきた。Windows側に猫なりApacheなりのwebdavフォルダを作って公開するというわけだ。セットアップは非常に簡単。だがSolaris側からどうやってアクセスするのか。答えは案外すぐに見つかった。
Windows2000などのファイルエクスプローラと同じ感じでWebフォルダのファイルにアクセスできることがわかった。
これで再びWindowsをサーバにする気合いが思い切り高まったゾ!おまけにいちばんめんどっちい、OS及びドライバのインストール、さらにHDDのパーティション切りまでも、のんのんがやってくれていたのである!一番おいしいとこだけ、のに子にやらしてもらえるというわけだ。なんという愛情!ののろけはともかく、サーバ構築ゴーだッ!
2003年03月31日
下記の理由は特に目新しい問題とは言えない。ではなぜもっと前にさっさとWindowsでサーバを立てなかったのか。第一の理由は、
Apache-Perl-PostgreSQLをそのままWindowsに載っけるのは難しい
実は以前これは実験を試み、「原則的にはまあできるが、窓野郎に対してそこまで労力を使う気がしない」という結論に達していた。
SolarisからWindowsサーバにアクセスするのは難しい
以前この問題はFTP公開により解決していた。だがそのときはわたしも今ほどSolarisをガシガシ使っていなかった。今のサーバへのアクセス頻度を考えるといちいちFTPかヨ〜というか、わたしはFTPをよく勉強していないのでなんとなくピンと来ない。
だからまあ絶対にできないことは絶対にないのだが、なーんかよっしゃって取り組む気がしない〜、という理由で今まで取り組まなかったのだ。
2003年03月31日
Solarisでのサーバ環境構築にもだいぶ慣れて来たはずの今になって、なぜまたWindowsにその環境を移行しようとするのか。第一の理由は、
Windowsファイルの管理をUNIXでやるのが大変
まずは耳タコでしょうが半角カナと空白の問題。こちらで使わないようにしていてもどっかのドライバとかマニュアルとかサンプルとか、うっかり入れるとあとあとまで開けないだの消せないだの「ファイルがあります」だの・・・。加えて、アクセス権の問題。Windowsの一部のアプリケーションで作成したファイルを直接Samba共有フォルダに書き込むとなぜか書き込み禁止になったり、明らかにわたしが作ってそこに入れたとしか考えられないファイルの所有者名がのんのんになってたりと、非常に不気味な動きをしてくれる。Sambaをよーく勉強すればそういったトラブルも回避できるのかも知れないが、第二の理由がさらに追い打ちをかける。
以前買ったPowerEdge用のテープドライブがWindowsNTで最も安心して動く
では今までのウルトラサーバ環境ではどうしていたかというと、バックアップだけのためにPowerEdgeにNTを入れていた。UltraのSamba共有ディレクトリをネットワークドライブに割り当てればバックアップのターゲットにそれを指定できる。だが第三の理由というか、それでは
部屋の中サーバだらけじゃん
ということになる。うちみたいな規模なら負荷の全然薄いサーバを分散して使う意味はない。管理が大変だし、いくらヤツらの不祥事によりご迷惑をおかけされているとはいえ、やはり無駄な電力消費は抑えるべきである。
2003年03月31日