たこさんのメモ書き

Linuxの設定/構築のメモを残すのが主体です。
わからないこと、あれこれたくさん。

VMware server 1.0.7 上のVine4.2でアンダーバーのキーが使えない

2008-11-11 22:48:07 | Weblog
VMware server 1.0.7のゲストOSであるVine4.2にログインしてから、端末でコマンドを入力していると、アンダーバーのキー(かなで「ろ」)が入力できない。
ホストOSであるUbuntu8.04.1LTS日本語版からsshでログインしていると、このような現象は起こらなかったのだが、ゲストOSにログインした場合に、例えばapache2の設定ファイルをいじっている時、アンダーバーが使えないと非常に困る。
あれこれwebを探すと、それらしい解決策を見つけた。
参考は、こちらおよび、こちらこちら
最終的には、ホストOSに入っているVMwareの設定ファイルを変更する必要がある。
ゲストOSのキーマップを変更してやるのだ。
そのためには、今使っている、JP109の日本語キーボードのキーマップをまず調べてやる。
それから、アンダーバーを押したときの「キーコード」を、キーマップの設定ファイルに追加してやるのだ。

作業1:コマンドxevを使い、アンダーバーのキーを押したときのキーコードを調べる。
xevコマンドとは、X-Window-Systemの反応を調べるためのコマンドらしい・・・
$ xev
これでxevを起動させると、「event tester」という名前の別の端末が開く。
マウスをこのevent tester端末上に置いて、アンダーバーを表示するためにShift+「ろ」キーを押してみる。
すると、下記のイベントが表示される。
KeyRelease event, serial 31, synthetic NO, window 0x4000001,
root 0x56, subw 0x0, time 5644148, (65,711), root:(659,759),
state 0x11, keycode 211 (keysym 0x5f, underscore), same_screen YES,
XLookupString gives 1 bytes: (5f) "_"
XFilterEvent returns: False

KeyRelease event, serial 31, synthetic NO, window 0x4000001,
root 0x56, subw 0x0, time 5644335, (65,711), root:(659,759),
state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

よくわからないが、keycodeの部分を見ると、アンダーバー(underscoreらしい)のkeycodeは211のようだ。
(左側のシフトキー(Shift_L)は、keycode 50。)


作業2:日本語109キーボードの制御コードを調べる。アンダーバーの制御コードは何か?
VMwareの日本語キーボードの制御コードを記したファイルは、下記のファイル。
/usr/lib/vmware/xkeymap/jp109
アンダーバー=かなの「ろ」キーが、どの制御コードになっているかを調べる。
$ less /usr/lib/vmware/xkeymap/jp109
すると、該当するのは下記の部分のようだ。
kana_RO = 0x073

作業3:判明したアンダーバーのキーコードを、キーボードの制御コードに一致させてやる。
VMwareの設定ファイル ~/.vmware/preferences に、キーコードと制御コードをペアにした一文を追加してやるのだ。
以下の2列を、設定ファイルの末尾に追加して保存。
xkeymap.useKeycodeMapIfXFree86 = true
xkeymap.keycode.211 = 0x073

以上の作業をした上で、VMware serverを再起動する。
$ sudo /etc/init.d/vmware restart

ホストOSを起動し、端末からアンダーバーを入力すると、無事に成功した。
これでローカルからでも、ホストOSからのssh接続からでも、設定ファイルがいじれるようになった。




apache2の設定ファイル シンタックスエラー

2008-11-10 00:31:19 | サーバー管理
Vine4.2では、apache2の設定ファイルは /etc/apache2/conf/httpd.conf である。
この設定ファイルに様々な設定値を書き込むのだが、まちがった値を書き込むとapache2が動かなくなる。
書き換えた設定ファイルを有効にするために、apache2を再起動する必要があるのだが、再起動しなくなるのだ。
このような間違いを防ぐため、apachctlというコマンドの中にconfigtestというオプションが用意されている。
このオプションは、設定値の間違いについて、"syntax error"というメッセージを発して警告してくれる。

Vine4.2では、whereisコマンドでapachectlの場所を探すと、manページしか見つからない。
しかし、/etc/int.d/apache2コマンドにconfigtestオプションを加えて、同じことをすることができる。

実行結果は下記。
$ sudo /etc/init.d/apache2 configtest
Password:
Syntax OK

apacheのダイジェスト認証を使う

2008-11-03 23:37:14 | サーバー管理
自宅サーバーのVine4.2にwebalizerを入れて、apacheのアクセスログを図示できるようになった。
なったのはいいが、該当するディレクトリ名をブラウザのアドレスバーに入れると、そのまま閲覧できてしまう。アクセスログを一般公開するのはどうかと考えたので、ダイジェスト認証を使うように設定することにした。
ダイジェスト認証の設定は、apahce2のhttpd.confを編集し、さらに認証ファイルを作成することで実現できる。

まず、httpd.confの編集。
$ sudo vi /etc/apache2/conf/httpd.conf
そして、httpd.confの適当な位置(末尾?)に、以下のディレクトリ設定を加える。

\<\Directory "/home/hoge/public_html/webalizer">
AuthType Digest
AuthName himitsu          #これが、realm「レルム」になる
AuthUserFile /etc/apache2/digest_db
AuthGroupeFile /dev/null #グループの設定はしないので、/dev/nullにした
require valid-user
\<\/Diretory> #「/」を忘れないこと。

以上で、apache2を再起動させた。
$ sudo /etc/init.d/apache2 restart

次に、認証ファイルを作る。
そのためには、htdigestコマンドを使う。
しかしVine4.2では、このコマンドは見当たらないのだ・・・・
googleで探すと、Vine4.2の場合、コマンド名がhtdigest2であるらしい。
参考はこちら

コマンドの構文は以下のようになっている。
htdigest2 オプション 認証ファイル レルム ユーザー名
(オプション「-c」で、新たに認証ファイルを作成することになる。)
下記のコマンドを入力。
$ sudo htdigest2 -c /etc/apache2/digest_db himitsu hoge
パスワードを2回入力して、終了。

以上の作業が終わってから、webalizerのディレクトリにアクセスすると、認証画面が出現した。
パスワードを入れると、webalizerのグラフ画面が現れる。
これで、アクセスログを秘密に閲覧することができる。




webalizerを使う

2008-11-03 19:52:11 | Vine4.x
Vine4.2をサーバーとして外部公開していると、アクセスログが日々積み重なるのがわかる。
ログは、その1行ずつにアクセスの形跡を記述しているのだが、一目でわかるようにはなっていないので、読むのが辛い。
一目でログがわかるようになればいいのに・・・でも、スクリプトは書けないし。
でも、ログを整理しグラフにして表示してくれるソフトを見つけた。webalizerというものだ。

Vine4.2にはパッケージが用意されているので、apt-getコマンドでインストールが簡単にできる。
$ sudo apt-get install webalizer
$ rpm -qa | grep webalizer
webalizer-2.01.10-0vl3

次に、使えるように設定する。
参考は下記。
http://vine.1-max.net/apache-webalizer.html

ユーザーhogeのディレクトリを公開しているので、ユーザー個別に使用する設定を行う。
パッケージをインストールした時点で、設定ファイルである /etc/webalizer.conf ができる。
このファイルを必要に応じて編集。

LogFile /var/log/apache2/access_log   #初期設定値から、実際のaccess_logの位置へ変更
OutputDir /home/httpd/html/webalizer #インストール時点で生成されている
HistoryName webalizer.hist #コメントをはずし有効化
Incremental yes #同上
IncrementalName webalizer.current #同上
Hostname localhost #初期設定値。これが解析の対象になる

以上の部分を変更して保存。

そして、/etc/webalizer.conf を、/home/hoge/配下へ移動させる。
$ sudo cp -i /etc/webalizer.conf /home/hoge/
次に、webalizerの解析結果などを置くディレクトリを作成する。
$ mkdir /home/hoge/public_html/webalizer

アクセスログを解析させる。
$ sudo webalizer -c /home/hoge/webalizer.conf
これで、webalizerディレクトリの下に結果が生成される。

以上で、webブラウザからグラフ化された解析結果を閲覧できるようになった。
http://huga.mydns.jp/~hoge/webalizer
ブラウザで上記のアドレスにアクセスすると、結果を見ることができる。

追記 2008年11月9日
webalizerは、コマンドを手動で動かすたびに、ログファイルの解析を行ってくれる。
いちいち手動でコマンドを動かさないと、解析してくれないわけだ。
だから、上記のコマンドを自動実行させるように、cronで設定することにする。

$ sudo crontab -e
0 4 * * * wget -c /home/hoge/webalizer.conf #この行を追加。

これで、毎日午前4時ちょうどに、wgetコマンドが発行される(はず)。








Movable Type Open Source 4.22をインストール

2008-11-03 19:26:35 | Vine4.x
VMware server 1.0.7の仮想マシンにインストールしたVine4.2に、オープンソース化されたMovable Type Open Source 4.22(MTOS4.22)をインストールした。
インストール作業自体は、MTOS4.22のZIPファイルを、目的のディレクトリで展開し、その中の設定ファイルを編集するだけという簡単なものだが、webサーバーの設定をいろいろと考えて編集するのにてこずった。
サーバーの設定をよく理解して設定することが重要。

まず、webサーバーapache2によって公開されるディレクトリを決める。
初期設定値は/var/www/htmlディレクトリだが、一般ユーザーのディレクトリを公開することも可能だ。
また、公開するディレクトリはMTOSをインストールするディレクトリでもあるのだが、このディレクトリで、CGIを実行できるように設定しておく。
MTOSはperl言語によるCGIスクリプトでできているので、CGIが動くようにしておかなくてはいけない。

また、記事などの内容はデータベース(DB)に保存されるので、使用するDBを別途インストールし、それを正しく設定しておくこと。
今回は、MySQLを選んだ。(SQLiteというDBを選ぶと、設定作業自体は不要らしい。)

また、MySQLとMTOSとを接続するためのプログラムを入手する。
これはperl言語で作られたモジュールで、こういった有用なモジュール群を収録した、CPANというweb上の公開データベースから入手できる。
入手方法はいたって簡単で、以下のコマンドを入力する。
$ sudo perl -MCPAN -e shell
password:
すると、以下のプロンプトが現れるので、ここにコマンドを入力する。
cpan>
cpan> install DBI
cpan> install DBD::mysql
など。
終了は以下。
cpan>quit

以上の準備を行った後で、MTOSのZIPファイルを展開するためのディレクトリを作成。
「アプリケーションディレクトリ」/home/hoge/public_html/cgi-bin/mt
「スタティックディレクトリ」  /home/hoge/public_html/cgi-bin/mt/mt-static
「ブログディレクトリ」 /home/hoge/public_html/blog
#ブログディレクトリの所有者・グループは、それぞれapache,apacheとした。
ブログディレクトリは、MTOSが生成した記事が書き込まれ、webへ公開されるようになる。
apache2が読み書きできないといけないため、このディレクトリの所有者を、apache2と同じにした。
上記のディレクトリへ、展開したファイル群をそれぞれに分けてコピーする。

以上の作業を終えてから、Vine4.2のブラウザから(つまりローカルから)、インストール作業をするためのwebページへアクセスする。
http://localhost/~hoge/cgi-bin/mt/mt-upgade.cgi
すると、「アカウントの作成」画面が出る。
ユーザー名やメールアドレス、使用言語、パスワードを入力。
ここの入力を終えると「最初のブログを作成」画面に移るので、ブログのURLと公開パス(サーバーマシン上のファイルの位置)を正しく入力すること。
ブログ名: My First Blog(初期設定値)
ブログURL:/http://huga.mydns.jp/~hoge/blog(無料のダイナミックDNSサービスmydnsを利用している)
公開パス: /home/hoge/public_html/blog

以上で「完了しました」とのメッセージが出ると、インストールは完了。

VMware server のホストOSであるUbuntuのブラウザから、ホスト名の代わりにIPアドレスを入力すると、無事にブログが表示された。
ホストOSの/etc/hostsファイルに、ゲストOSであるVine4.2のIPアドレスとホスト名(hoge.mydns.jp)を一致させるように記入してやると、ホスト名を使ったURLでブログを表示することができた。
(参考)
ホストOSの/etc/hosts
127.0.0.1 localhost
192.168.0.2 hoge.mydns.jp