Ubuntu9でHTTPサーバーを構築する

デスクトップ版をインストールしたものにサーバー機能を追加してみましょう。
後で思い出しながら書いているので、抜けているかもしれません。

追加が必要なものは次のとおり(だったとおもう)
webmin
apache2
sendmail
postfix
proftpd
mysql-server
php5
php-pear
php5-gd

Ubuntuにもyumが入るらしいがリポジトリの設定がダメなのか全然使えなかった。
インストールはapt-get、検索はapt-cacheを利用する。

Plat’ Home Trus-E13にLinuxをインストールする

先日、ヤフオクにてサーバーをゲットしました。
Xeon2.4GHz(HT)x2、メモリ4G、HDD36Gx2で、そこそこの代物です。
ちなみに落札価格は3,000円でした。
物はジャンクなので正常に動作するかはなぞですが、とりあえず新しいおもちゃが手に入ったので遊ぶことにしましょう。
plathomee13

さて、まずはRAIDの設定です。
このサーバーでは、[Ctrl+A]でSCSIの設定画面が出るので、ミラーリングのRAID1を選択します。
次にOSはCentOSを選択。

CentOSのブートディスクを入れて進めていくと・・・パーテイションを選択する段階でHDが見つからないと怒られて、ここでインストールが止まってしまいます。
なんどかSCSIの設定をやり直してみたり、BIOSをいじってみましたがだめです。
さすがにジャンク扱いはこんなものかなと諦め・・・はしません。

こういうときにはぜんぜん違うものを入れてみると原因がわかったりするので、ひとまずubuntuを入れてみることに。
・・・何の苦もなくインストールが完了しました。
どうやらOSの問題か相性の可能性が高い、つまりハード的には問題ないかもしれないようです。
ここでCentOSのドライバ周りを疑うことにしました。

起動画面とにらめっこしていると、
Adaptec I2O BIOS という文字が見えます。
この文字からドライバを探してみましょう。
I2Oとは、検索によるとサーバ向けの統一規格ドライバのようです。
追加ドライバのリストには「I2O Block Driver」がありました。
どうやらこれを追加してやればいいようです。

そこで、改めてCentOSを入れなおしてみます。
ブートして操作待機画面で通常はそのままエンターキーを押すところを、デフォルトプロファイルを選択しないモードでインストールを進める「linux noprobe」を入力します。
これでHDDが認識できるようになったので、後は通常のインストールと同じです。
インストール作業が終わって、再起動をすると、問題なく起動・・・しませんorz
ネットワークのサービスを起動する時点で固まります。
BIOSでNICを切ってやると、今度はISDNサービスの起動時点で固まります。
この安物のサーバーは、どうやらネットワーク系が死んでいるようです。
サーバーマシンでネットワークがだめとはどうしようもありません・・・

次にFedora10を用意しました。
こちらは何もしなくてもI2Oを認識しました。
インストール完了までは問題なく進み、ブート画面が表示されてプログレスバーが延び始め・・・てマウント失敗と出ますorz
mount: error mounting /dev/root on /sysroot as ext3: No such file or directory
インストール時にはHDDは問題なく認識しているのに、起動時になって認識失敗とはどういうことでしょう・・・
この問題の解決方法がわからないので諦めます。

次にopenSUSE10.3
インストールからして全体的にWindowsに似せた構成です。
対応アプリが充実すれば、デスクトップとしてそこそこ使えるのではないでしょうか。
パッケージマネージャが個人的に会わないので使ってはいませんが、サーバ用途なら特に問題ないのかもしれません。
何の問題もなく最後まで安定して進み、再起動も問題ありません。
相性ばっちりといったところでしょうか。

次にVine4.2
結構前に、貧弱なマシンに入れるために選んだことのあるディトリです。
インストールを進めていくと、インストール画面に行く前にHDデバイスが見つからないからドライバを追加しろといってきます。
このチェック機能はCentOSより上だったのですね。
関心しながらI2を追加して進めていくと・・・orz
パーティション設定でやはりHDが見つからないといわれます。
さっきのドライバ確認は何だったのでしょう。
気を取り直してもう一度試してみましょう。
よくよくみるとI2O Block以外にAdaptec I2Oというものがあるではないですか。
これで試してみましょう。
これが正解だったようです。
パーティションの設定も無事に終わり、インストールが開始されました。
再起動後も問題なさそうです。

そこで、改めてCentOS5.3を入れなおしてみることにしました。
が、やはりだめでした。
ネットワーク系のチェックで固まります。

さらにFedora10で挑戦します。
しかし、同じようにマウントエラーで進めません。

結局Ubuntuを入れて落ち着くことになりました。

CentOS 5.3をネットワーク経由でインストールする

CentOS5.3だからといって特に特別なところはありません。
たまたま新しいマシンにインストールするのと、最近記事を書いてないので、一言書いておくだけです。

片言でも中学レベルの英単語が読めれば、ネットワークインストールも特に問題ありません。
高校英語3年赤点の私がいうんだから間違いありません。

FTPのサイトはいつもの理研
「ftp.riken.jp」
ソースの場所は、5.3なので
「/Linux/centos/5.3/os/i386/」
これでimgが見つかればダウンロードを開始します。
あとは通常のインストールと同じです。

さて、ヤフオクで手に入れたPlat’ HomeのTrus-E13ですが、Xeon2.4GHzが2発、メモリ4G、HDD36Gx2をRAID1でミラーリングしました。
CentOSが問題なく動けば新しい自宅サーバのマシンに・・・

ふ、ファンの音が、うるさい・・・orz

PHPのparse_ini_fileでハマる

parse_ini_fileは設定ファイルをパースしてくれる関数ですが、使い勝手が良いのか悪いのか。
文字列に「”」ダブルクオートを含む場合、そのままでは記述できません。
エスケープしてみたり、文字列をほかのもので囲んでみたりしたけど、希望するとおりにならない。
しかたなくphpのリファレンスを見ると、定数で逃げればいいとの事。
iniを動的に作成したりする場合は、

define( 'QUOTE', '"' );

必須ということですね。

こういうやり方が残っているとは、PHPもまだまだだなぁと思う今日この頃でした。
ちなみに、検索で調べた中で文字列自体を定数にしろという意見もありましたが、定数と変数の違いを理解していない人が多いのは残念です。
とはいえ、自分も定数に逃げている部分もあるので、大きいことはいえませんが。

VMware Serverが起動しない

VMware Serverを起動して接続しようとすると以下のようなエラーが表示されました。
There was a problem connecting:
511 vmware-served service is not running.

サービスが動いてないよ、ということらしいので、サービスを確認すると、開始されていないサービス「VMware Registration Service」がありました。
これを起動すればよさそうなので、サービスを開始してみると、少し時間がかかって完了。
これで、正常に接続できるようになりました。

ちなみにサービスの設定を行うには、コントロールパネル >管理ツール>サービスからです。

アフィリエイトのLinkShare

WCG-Team 2ch:404で何かしらバナーを追加しようと思っていると思い出したLinkShare。
画面が使いづらいのと、あちこちに散らばった説明の文字が読みにくくて、使用をあきらめていたサイトです。
今でもあの使いづらさは健在のようで、大変苦労しました。
そんなわけで、現在の支払い実績はありません。
1円から支払ってくれるとのことですが、どうなのでしょうか。
とりあえず、興味をもたれた方はしたのバナーからどうぞ。
サイト説明もなく、いきなり登録画面に飛ぶので、怪しいサイトに見えるのかもしれません。一応、このサイトは個人的な目的であるパソコンショップ関係や大手通販サイトも登録されているので、大丈夫だとは思いますが。
余談ですが、自前のサーバーを持っていないのか、URLを見る限りCGIモードのPHPを使っているようです。Q&Aがokwaveに飛んだり不思議満載です。
アフィリエイトならリンクシェア

HTTP_REFERERは使うな

PHPで組んだものをIEデミルとどうも動きが怪しい。
ちょっと調べてみると、IEがセキュリティ設定の都合でHTTP_REFERERを吐いていないらしく、一部画面の推移に影響が出ていた。
てっきりJavaScriptだけだと思っていたのに、サーバにも情報を隠蔽していたらしい。
仕方がないので、HTTP_REFERERを使わないようにい変更するしかない・・・

RGBとCMYKのお話

RGBは加法混色、CMYKは減法混色。
モニタで見る色と、印刷で見る色は異なり、同じ色を出すことはできません。
この違いをどうエミュレートするかが、DTPの鍵なので、いろいろ調べてみました。

有名な変換式
RGB→CMYK

  C=(1-R-K)/(1-K)
  M=(1-G-K)/(1-K)
  Y=(1-B-K)/(1-K)
  K=min(1-R,1-G,1-B)


CMYK→RGB

  R=1-min(1,C*(1-K)+K)
  G=1-min(1,M*(1-K)+K)
  B=1-min(1,Y*(1-K)+K)

これらの式はいわゆる論理式に近く、実際に使用できるほどの精度はない。
RGBとCMYの最小値~最大値を変換しているだけで、色の再現性は無視されている。
そこで、DPのソフトウェアでは、独自の式を用いている場合が多いが、イラストレーターの場合はバージョンで式が異なる。そこで、いったいどうなっているのか調べてみたので、記録しておく。

イラストレータ7の場合

赤を変換してみる。
C:M:Y:K=0:100:100:0

R:G:B=255:0:0

C:M:Y:K=1.17:96.55:91.8:0

R:G:B=250:13:10

C:M:Y:K=2.34:94.92:91.02:0.39

この後はどんどんずれていき、
R:G:B=236:22:11
C:M:Y:K=6.25:91.41:92.97:0.78
前後で安定する。
どのような式で変換されているのかまったくの不明である。

イラストレータCS3の場合

C:M:Y:K=0:100:100:0

R:G:B=204:34:41

C:M:Y:K=0:100:100:0

R:G:B=204:34:41
と、CS3では可逆変換になっている。
ちなみにRGBから変換すると、
R:G:B=255:0:0

C:M:Y:K=0:96.08:89.8:0

R:G:B=255:0:0
こちらも可逆らしい。
イラレ7とは異なる式が用いられているのは明らか。

Photoshop7の場合

C:M:Y:K=0:100:100:0

R:G:B=237:28:36

C:M:Y:K=0:100:100:0
こちらも可逆変換のよう。
RGBから変換すると、
R:G:B=255:0:0

C:M:Y:K=0:99:100:0

R:G:B=255:0:0
こちらも可逆変換と思われる。
しかし、CS3とはRGBが異なり、異なる式が用いられているらしい。

GIMP2.6の場合


C:M:Y:K=0:100:100:0
||
R:G:B=255:0:0
簡単な式によって変換されている。
推測だが、ImageMagickもGIMPと同じ式を用いて変換されているらしい。

  C=1-(R/255)
  M=1-(G/255)
  Y=1-(B/255)


但し
C=M=Yの場合に限り

  K=C
  C=M=Y=0


となる。

結論としては、CMYKを基準にして、ディスプレイでは適当なRGBを選択しておき、EPSなどにするときは内部でテーブルを用意して置き換えるのがよさそうです。

桂ヒナギク starring 伊藤 静

ハヤテのごとく!!のヒロイン(?)である桂ヒナギク様のキャラクターソングCDです。
雨の中、池袋のアニメイトで買ってきました。
発売から2ヶ月ぐらいたっていますが、いまだに限定版が面で置いてあって、発注に失敗したのか、作りすぎでメーカーから押し付けられたのか・・・と詮索はここまでにして。

いまだに曲を確認せずにタイトル買いなのですが、全体ではそこそこ良い方だと思います。
一部の曲はミックスダウンがドンシャリで少々聞きづらかったりもしてますが、キャラを生かした構成にはなっているかと。ちなみに予算の都合上、通常版を買いました。

Fedora10でWebminがインストールできない時には

Fedora10で何も考えずにWebminをインストールしようとすると失敗します。
Firefoxでパッケージをダウンロードしてインストールを開始すると、以下のようなエラーが表示されて進めません。

Error Type: <type 'exceptions.UnicodeDecodeError'>
Error Value: 'ascii' codec can't decode byte 0xe3 in position 56: ordinal not in range(128)
  File : /usr/lib/python2.5/site-packages/yum/rpmtrans.py, line 376, in callback
    self._instProgress( bytes, total, h )
  File : /usr/lib/python2.5/site-packages/yum/rpmtrans.py, line 457, in _instProgress
    self.complete_actions, self.total_actions)
  File : /usr/share/PackageKit/helpers/yum/yumBackend.py, line 2187, in event
    self._showName(self.info_actions[action])
  File : /usr/share/PackageKit/helpers/yum/yumBackend.py, line 2180, in _showName
    self.base.package(package_id, status, self.curpkg.summary)
  File : /usr/share/PackageKit/helpers/yum/yumBackend.py, line 230, in package
    PackageKitBaseBackend.package(self, package_id, status, summary)
  File : /usr/lib/python2.5/site-packages/packagekit/backend.py, line 109, in package
    print >> sys.stdout, "package\t$s\t$s\t$s" $ (status, package_id, summary)

ここで肝心なのは最初の1行のみ。
文字コードに問題がある用です。
Fedora10のFirefoxはダウンロード先はデスクトップの「ダウンロード」フォルダです。この「ダウンロード」という文字が怪しそうです。
そこで、パッケージをデスクトップに移動してもう一度インストールを行うと、無事に完了しました。
CentOS5.3ではデフォルトの保存先はデスクトップだったのでこの様な事態に遭遇しませんでしたが、Fedora10ではこのような事態が発生します。
エラーが表示されても、落ち着いてメッセージを確認すれば大抵のことは分かります。
今手に入るLinuxではWindowsみたいに謝るだけで何がダメなのか教えてくれないなんてことはありません。