Serverの最近のブログ記事

 Vine Linux 4.2 に VNC Serverをインストールしてみた。

インストール
 aptでvnc-serverパッケージをインストールする。

# apt-get install vnc-server


アクセス設定
 hosts.denyとhosts.allowでアクセス制限(不許可・許可)を行う。

# vi /etc/hosts.deny
    Xvnc : ALL
    * まずは全てを不許可

# vi /etc/hosts.allow
    Xvnc : xxx.xxx.xxx.xxx
    * 指定したIPアドレス(xxx.xxx.xxx.などとしてセグメント指定も可)を許可

パスワードの設定
 vncpasswdコマンドで接続時に必要なパスワードを設定する(個人単位)

$ vncpasswd
Password:
Verify:

vnc-serverの起動

$ vncserver

 起動すると以下のようなメッセージが出力される。

New 'fuga:1 (hoge)' desktop is hoge:1

Starting applications specified in /home/hoge/.vnc/xstartup
Log file is /home/hoge/.vnc/fuga:1.log

 ":1"の「1」はディスプレイ番号と呼ばれるもの。接続時や停止時に必要なので記憶しておく。

GNOME
 デフォルトでGNOME環境となるよう設定する(デフォルトではtwm。見た目が悲しい)。
 ホームディレクトリの.vncディレクトリへ移動する。

$ cd /home/hoge/.vnc

 デフォルトの環境ファイルをリネームする。

$ mv xstartup xstartup.org

 xinitrc を xstartup として利用する為、シンボリックリンクを張る。

$ ln -s ../.xinitrc ./xstartup

 ホームディレクトリに.xinitrcファイルが存在しない場合にはしかるべき場所からコピーしてくる。

$ cp /etc/X11/xinit/xinitrc /home/hoge/.xinitrc


vnc-serverの停止
 vnc-serverの停止には起動時のディスプレイ番号が必要となる。

$ vncserver -kill :1


VNCクライアントで接続
 VNCサーバのホスト名にディスプレイ番号を付与したアドレスで接続する。

fuga:1


ブラウザで接続
 Javaが動作するならばブラウザからVNCを利用する事ができる。
 ポート番号の下1桁(1の位)をディスプレイ番号にする。

http://fuga:5801



参考
VNCのインストールと設定
http://www2.starcat.ne.jp/~kanocl/shumi/vnc.htm

 先日、Fedora 9がリリースされました。
 遅ればせながら気づいたのですが、今回のFedora 9から再びCDのインストールディスクが提供されるようになっていました。
(Fedora 7、Fedora 8はDVDのイメージのみ)

 ウチの環境だとDVDディスクからのブートが出来ず、ネットワークインストールしか手段がなかったのですが、CDあると助かります。
 試しに何かに入れてみたいと思います。

Fedora Project
http://fedoraproject.org/

 いつも重宝しているsubversion。
 Windows上でリポジトリ作って利用する事は少ないんですけど、先日遭遇した問題。
 過去のログメッセージを再編集しようとすると以下のエラーで書き込めない。

Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook

 これ、バッチファイルを用意してあげないといけない。

リポジトリフォルダ\hooks\pre-revprop-change.bat
if "%5"=="M" (
  if "%4"=="svn:log" (
    exit 0
  )
)
echo "Changing revision properties other than svn:log is prohibited" >&2
exit 1

参考


 先日、Movable Typeのバージョンアップを行ってから、管理画面のレイアウトが崩れる(+一部のコントロールが機能しない)状況に陥っていて、おそらくすぐに追加アップデートが出るだろうと、他人のせいにしていたら、原因は自分でした。

 バージョンアップ時、cgi-bin配下のアプリケーションディレクトリのみを上書きしていて、スタティックディレクトリの事を忘れていました。
 ウチの環境だとcgi-bin配下を直接覗けないため、スタティックディレクトリを別の場所に設置してあります。バージョンアップ時にはこの内容も更新する必要があったのでした。

 整備したら管理画面ちゃんと表示されるようになりました。

ある問題が発生して、
それが他人のせいだと考え始めたとき、
多くの場合においてそれは自分が引き起こしている。


管理画面の画像が表示されず、デザインが崩れています
 今朝起きて、メールチェックしようとしたらサーバに接続に失敗する。
 サーバのエラーログを確認したら以下の通り。

Time just moved backwards by 116 seconds. This might cause a lot of problems, so I'll just kill myself now. http://wiki.dovecot.org/TimeMovedBackwards
(時間が116秒戻った。ヤバいからオレは死ぬぜ。dovecot)

 dovecotが死に際に残してくれたURLにアクセスすると、

大変な事になるから時間を戻してはいけないよ。もしかしてntpdateなんて使ってるんじゃあるまいね。ntpd使えよな。

なんて書いてある。図星だ。

 ウチのサーバはntpdを動かさず、cronで明け方にntpdateで時刻調整を行っている(ntpサーバにするつもりはないのでntpデーモンを動かす気がなかった)。
そして実は、昨日事情あって夕刻にサーバをリブートしていた。それで大幅な時刻誤差が生じて明け方のntpdateでdovecotが死亡ようだ。

 「再起動後の大幅な時刻誤差」には心当たりがある。ハードウェアクロックだ。
 以前のサーバではntpdateにあわせてhwclockでハードウェアクロックの調整も行っていたのだけど、今はそれを怠っていた。

 ハードウェアクロックとカーネルクロックを確認してみる。

Manpage of HWCLOCK

# hwclock --show;date
Wed Feb 13 07:19:07 2008  -0.692619 seconds
Wed Feb 13 07:16:56 JST 2008

 ハードウェアクロックの方が2分ほど進んでいる。つまりこれが116秒の時差。
 とりあえず、ハードウェアクロックをカーネルクロックに合わせておく。

# hwclock --systohc

 次に、ntpdateで行っていた時刻調整をntpdで行うようにする。
 以下のコンテンツを参考にさせて頂いたところ、-qオプションが便利なようだ。このオプションは時刻調整が済み次第ntpdを終了するというもの。つまりこれは、ntpdをデーモンとして動かさずに利用できる事になる。知らなかった。

Stray Penguin - Linux Memo (ntpd)

 一応記載しておくと、ntpdateとntpdの実質的な違いは、前者は強制的に時刻調整するのに対し、後者は1秒の長さを実際よりも長くしたり短くしたりして正確な時刻に近づけていくという点。

 cronの設定を変更し、-qオプションによりntpdで時刻調整の後、hwclockでカーネルクロックとハードウェアクロックの時刻を同期させるよう変更した。これでOK。

 先日dhampir.netドメインについてエントリしたので、今回はivoryworks.comについて。

 10年ほど前に開設したIvoryTowerという個人サイト。名前は気に入ってたんですけど、同名サイトが多数存在していて、ちょっとなあ、という残念感を感じていました。
 そんな経緯で、サイト名をIvoryworksと改め、ドメインも同じものを取得しました。

 よく誤解されるので最初に書いてしまうと、「象牙細工」とは全く関係ありません。ivoryworksはIvory Tower's Works(象牙の塔の生産物)という意味のつもりでいるんですけど、今更思うにこれ自分しかわからないな、と(ドメイン取得当時、ivorytowersworksという名前は長すぎて抵抗があった。字面も悪い)。長い付き合いなんでもう良いんですけど。

 それで、ivoryworks.comにしてから、海外からのアクセス(ドメイン直指定のダイレクトアクセス)が多くなり、挙句の果てにはどこかの国の人から、

「幾らですか?」

というメールが届いたりして。

 当時、ドメインの高値売買がニュースになったりしていて、ivoryworks.comドメイン買うって言ってるのかな?と思い、何度かメールをやり取りしたんですけど、それは誤解で、「今の象牙の相場って幾ら?」という事でした。
 結局、「ウチは象牙と関係ないです」みたいなメールを最後にやり取りは終了しましたが、相手からすれば意味わかんなかったと思います。

 ごめんなさい。象牙関係ないです。

 サイトのアクセス解析にWebalizer使ってます(先日からGoogle Analyticsも併用している)。

 で、configで例えばau端末からのアクセスを
GroupSite  *.ezweb.ne.jp  ezweb.ne.jp
のようにグルーピングしてるんだけど、解析結果が2重に計上されている。
   Hostname
3 ezweb.ne.jp
1 aaaaaaaa.ezweb.ne.jp
1 bbbbbbbb.ezweb.ne.jp
1cccccccc.ezweb.ne.jp
こんな感じ。

 もしやと思い、confのコメント読んだらちゃんと書いてあった。
If you want to hide the records that match (so just the grouping record is displayed), follow with an identical Hide* keyword with the same value.
読めよ<俺
GroupSite *.ezweb.ne.jp ezweb.ne.jp
HideSite  *.ezweb.ne.jp
で解決。
 昨日ためしに日時指定の投稿したら更新されてない。
 Cronのエラーメールが届いてた。

Can't locate MT/Bootstrap.pm in @INC (@INC contains: lib ../lib ...(略).)
at (略)/tools/run-periodic-tasks line 11.
BEGIN failed--compilation aborted at (略)/tools/run-periodic-tasks line 11.

 目的のlibディレクトリが見つけられていない。
しまった。

 マニュアルのcron設定例には、ちゃんと、

0,20,40 * * * * cd /path/to/mt; ./tools/run-periodic-tasks

と書いてあった(インストールディレクトリに移動してからrun-periodic-tasks実行)のに、
ディレクトリ移動せず、run-periodic-tasksをフルパス指定で実行してたから、スクリプトで
相対パスで指定されるlibディレクトリを見つける事ができなかった。
 ちなみに、当初確認したときは偶然、インストールディレクトリに入ってた。

 おとなしくマニュアルどおり(ディレクトリ移動してから実行)のcron設定した。

ok。

 もうブログには手を出すまいとしてきた2年の間に、MovableTypeは3系から4系にバージョンアップしていた。
 今回4系のMovableTypeを導入したのだが、どうにもXML::AtomとImage::MagickのPerlモジュールが入らない(現在のサーバ環境は3系を動かしていたときとは異なる、そして確か3系の時は必須モジュールしか入れてなかった)。

 Google様に同じような問題に直面した方々を紹介してもらい、解決にたどり着いた。
一応記録しておく。

 Image::Magickは単純にImageMagick-perlをインストールしたら解決した。

# yum install ImageMagick-perl

これでMovableTypeはImage::Magickを認識してくれた(ちなみに、「Image::Magickモジュールが入らねえ」と騒いでいた当初、ImageMagick本体自体がインストールされていないことに気づくまで割と時間を要した事は内緒だ)。

 XML::Atomは、

# yum install perl-XML-Parser
# yum install perl-XML-Dumper
これでOKだ(少なくともウチの環境では)。

KUROSAKI Luka

群馬県在住。
コンピュータでプログラムを書いたりして生きています。

アーカイブ