[todo][server] CentOSインストール後にやること

これからやること覚書。

まずは各パッケージを最新に。

yum check-update
yum update

必要ならiptablesの設定を変更。

外部に公開するサービスのインストール及び設定

  • ssh
    • デフォルトでインストール済み
    • /etc/sshd/sshd_configで設定
    • ログインユーザの公開鍵を登録
  • www
    • Apacheの最新版をソースからインストール
    • モジュール(PHP, Subversion等)は後で。特にPHPはApache, db(PostgreSQL)に依存する為。
    • 設定ファイルは今まで使ってきたものをコピーしてくる。
  • dns
    • bindをパッケージからインストール
    • /etc/bind/以下のファイルで設定
  • smtp
    • パッケージからPostfixをインストール

外部に公開しないサービスのインストール及び設定

  • db engine
    • PostgreSQLをソースからインストール
  • file server
    • Sambaをパッケージでインストール
    • 設定はSWATで。

その他のツール類をインストール

  • スクリプト言語
    • perlはデフォルトでインストール済み
    • Rubyはソースからインストール
    • PHPはソースからインストール
  • 開発ツール類
    • Subversionをソースからインストール
  • 管理ツール類
    • MRTGをソースからインストール
    • Analogをソースからインストール
    • Rastをソースからインストール

基本的に最新版を使いたいソフトはソースから。それ以外はパッケージで。

最終更新時刻: 2008年10月27日

[server] mylab.jpがダウン / [server]サーバメンテナンス / [server][programming]開発環境をLinuxに移す(2) / [server]無料のサーバ監視サービス

mylab.jpがダウン

本日(11/2)15:30頃から17:30までmylab.jpがダウンしていた。

原因は配線(電話線)が抜けていたため。電話線の爪が折れていたので抜けやすくなっていた。

対策として、新しいコードに交換。また、配線がわかりにくくなっていたのでリピートタイで纏めた。

サーバメンテナンス

昨日(11/1)6:00〜7:00 www.mylab.jpサーバ(Asus Terminator P4 533)をメンテナンスした。

最近発熱で警告が頻発していたためケースを開けて掃除。ファンの歯ブラシでホコリを払った。ホコリ大杉。

開発環境をLinuxに移す(2)

リモートでの開発はレスポンス上問題がある(64kbpsでSSHはちょっと辛い)。やはりローカルにもLinux環境を用意して、通常はそこで作業することにする。

ただしリポジトリ(Subversion)はサーバ側で管理するし、リリース等もサーバ上でやることになるのでサーバ側にも最低限の環境は用意しておく方向で。

通常開発に使用するマシンはThinkPad X31になる。Windowsを捨てる覚悟は無いので、coLinux上に開発環境を整えることにする。

無料のサーバ監視サービス

検討中。監視サーバ立てる余裕が無いときに便利。

最終更新時刻: 2008年11月28日

[programming] アニメ専門の番組表「アニメガイド」を公開

アニメ専門の番組表サイト「アニメガイド」を作ったので公開した。

特徴は今のところ以下の通り。

  • 放送順に番組を表示する。
  • 何分後に放送するのかわかる。
  • 番組をGoogleカレンダーに登録できる。

データは「しょぼいカレンダー」のデータを利用させて頂きました。というか、このサイトのデータが利用可能であることを知ったことがサイト制作のきっかけです。

「しょぼいカレンダー」を運営されるgaeさんと、データを編集している方々に感謝します。

最終更新時刻: 2008年10月27日

[server][programming] coLinux 0.6.4インストール / [server][programming]coLinux 0.6.4インストール(2) OSの環境を整えて、Apache 2.0.59のインストール / [todo]SVK - Subversionのリポジトリをローカルにミラーする / [server][programming]coLinux 0.6.4インストール(3) PostgreSQL 8.1.4のインストール

coLinux 0.6.4インストール

デフォルトのC:\Program Files\coLinuxにインストール。

Debian GNU/Linuxのディスクイメージ(Debian-3.0r2.ext3-mit-backports.1gb.bz2)を解凍。Cygwinのddコマンドで128MBのスワップイメージのファイルを作成。

dd if=/dev/zero of=swap_device bs=1M count=128

default.colinux.xmlをcolinux.xmlにコピーして編集。memoryのsizeとblock_deviceのpathを変更して起動。

colinux-daemon.exe -t nt -c colinux.xml

サービスとして起動する場合

colinux-daemon.exe --install-service colinux -c colinux.xml

ネットワークはTAPを使用してNAT構成(XPのインターネット接続の共有)で使用する。DNSはTAPを使用する場合、TAPに割り当てたIPを/etc/resolv.confに設定すればいい。

echo "nameserver 192.168.0.1" > /etc/resolv.conf

参考サイト

追記:インストールを進めていったら空き容量がなくなった。後でコピーすることになったが、時間がかかるので最初に作業しておくべきだった。以下作業手順。

新しいディスクイメージ(4GB)の作成。

dd if=/dev/zero of=4gb.img bs=1M count=4096

colinux.xmlに新しいディスクイメージの指定。及び起動引数にsinlgeを指定。

<block_device index="2" path="\DosDevices\c:\colinux\4gb.img" enabled="true" />
<bootparams>root=/dev/cobd0 single</bootparams>

ファイルシステムの作成。

mkfs.ext3 /dev/cobd2

マウント。

mount /dev/cobd2 /mnt

ディスクのコピー

cp -a bin cdrom etc home lib sbin usr boot dev floppy \
      initrd lost+found opt root tmp var /mnt/
mkdir /mnt/mnt
mkdir /mnt/proc
cd /mnt/etc
mv mtab mtab.disable

colinux.xmlを編集して再起動。

参考サイト

coLinuxのメモ - coLinuxのインストール (その8)

coLinux 0.6.4インストール(2) OSの環境を整えて、Apache 2.0.59のインストール

Debian GNU/Linuxの設定。

ソースのビルドは時間がかかる為、その間に環境を設定するとよい。 そのためまずはビルド環境の構築を優先する方針で。

パッケージの更新。

apt-get update
apt-get upgrade

端末からの操作用にsshをインストール。

apt-get install ssh

Apacheのソースビルドに必要なパッケージ。wgetはソース取得用。build-essentialをインストールすることで最低限コンパイルに必要なもの(e.g. gcc/make ...)は一通り揃う。

apt-get install wget
apt-get install build-essential
apt-get install libssl-dev

wgetでApacheのソースを取得して、ビルドを開始する。その間に別のソースを取得したり、環境を構築したり。Apacheのビルドオプション等は Express5800/110Ga-Cのセットアップ - PC関係のメモ (2006-08-05)と同様。

httpd.confの設定は後で行う。

開発環境や言語設定等を整える。

apt-get install locales vim emacs21 mule-ucs screen samba swat

swatは/etc/inetd.confを編集して/etc/init.d/inetd restartする必要あり。

ロケールはja_JP.UTF-8を選択。タイムゾーンも設定しておく。

tzconfig

SVK - Subversionのリポジトリをローカルにミラーする

colinux with SVK: blog.bulknews.net

これやりたいのでメモ。

coLinux 0.6.4インストール(3) PostgreSQL 8.1.4のインストール

PostgreSQL 8.1.4のインストール。

まずはライブラリ等のインストール。

apt-get install zlib1g-dev libreadline5-dev

コンパイル、インストール

./configure
make
make install

自動起動の設定。

cp contrib/start-scripts/linux /etc/init.d/postgres
chmod 755 /etc/init.d/postgres
update-rc.d postgres defaults

データ領域は/var/pgsql/dataに作るため、起動スクリプトを書き換える

PGDATA="/usr/local/pgsql/data"
           ↓
PGDATA="/var/pgsql/data"

ユーザの追加(既にpostgresユーザが存在する場合は必要なし)

groupadd -g 70 postgres
useradd -u 70 -g postgres -d /var/pgsql postgres

データ領域の作成。initdbの-Eオプション((-createdb/create database でエンコーディングを省略した場合に設定されるエンコーディング。-))でUNICODEを指定。--no-localeは指定しないと日本語のソート等で問題が発生するため必須。

mkdir /var/pgsql
chown postgres /var/pgsql
su - postgres
mkdir -p /var/pgsql/data
/usr/local/pgsql/bin/initdb -D /var/pgsql/data -E UNICODE --no-locale

.bash_profileで環境変数の初期化処理

export PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=/var/pgsql/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

最後に確認。rootで/etc/init.d/postgres startして、下記コマンドで起動およびエンコーディングを確認。

postgres@colinux:~$ psql -l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8
(3 rows)

参考記事

coLinux 0.6.4インストール(4) PHP 5.2.0のインストール

apt-get install flex libxml2-dev libbz2-dev
./configure  \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--enable-zend-multibyte \
--with-zlib \
--enable-pcntl \
--enable-exif \
--with-pgsql
--with-bz2
make
make install

MySQLがインストールされている場合は、以下のオプションも追加する。

--with-mysql

php.iniをコピー

cp php.ini-dist /usr/local/lib/php.ini

PEARの準備。php.iniの編集

extension_dir = ".;/usr/local/lib/php"

なぜだかPEAR DBがインストールされていなかったので個別にインストール

pear install DB

coLinux 0.6.4インストール(5) Apacheの設定

Apacheの実行ユーザ/グループを作成

groupadd -g 80 httpd
useradd -g httpd -u 80 httpd -d /var/www
passwd httpd

ディレクトリを用意

mkdir -p /var/www/htdocs
chown -R httpd.httpd /var/www
mkdir /var/log/httpd
chown httpd.httpd /var/log/httpd
mkdir /var/lock/httpd
chown httpd.httpd /var/lock/httpd

httpd.confを編集。外部に公開するわけではないので最低限の設定。

User httpd
Group httpd
DocumentRoot "/var/www/htdocs"
ErrorLog /var/log/httpd/error_log
CustomLog /var/log/httpd/access_log combined
<Directory "/var/www/htdocs">
...
AllowOverride All
...
</Directory>
最終更新時刻: 2008年11月13日

ThinkPad X31のキーボードを掃除

ThinkPadのキーボードを掃除した。手垢とホコリが取れて新品みたいに綺麗になって、打鍵感も良くなった。

準備したもの

  • エアダスター
  • ピンセット
  • 綿棒

以下手順。

  1. キートップを全て外す。
  2. エアダスターでホコリを飛ばす。
  3. 飛ばしきれなかったホコリはピンセットと綿棒で取り除く。
  4. キートップを水で濡らした綿棒で拭く。
  5. キートップをはめる。

手間を取ったけど、商売道具の手入れは大事。

注意点として、キートップを外すときに力を入れすぎるとパンタグラフごと外れてしまう。パンタグラフを取り付けるのは非常に面倒。パンタグラフだけならともかくラバードームまで外れてしまったときはどうしようかと思った。

ただ感心したのは、これらの部品はすべて結構頑丈で、しかも接着剤等を必要としない。ピンセットでごにょごにょやっていればなんとか元に戻った。((-パンタグラフの土台が外れたとき、あきらめて英語キーボードを購入しようかと考えた。-))

しばらく使ってみたが、快適さが比べ物にならない((-それだけ汚れていたということかもしれない-))。これはコーディングがさくさく進みそう。

最終更新時刻: 2008年11月02日

アニメガイドに機能追加

アニメガイド - アニメ専門の番組表

機能追加。

  • 各番組ページに「Googleブログ検索」「はてなブックマークの注目エントリー」を表示。

このサイトは2年近く遠ざかっていたWeb制作のリハビリも兼ねている。今回はRSS引っ張ってきただけだけど、今度はちゃんとRESTとかSOAPとかのAPIを使ってみたい。あぁ、あとAJAXも。

画像の説明

最終更新時刻: 2008年06月04日

PS3 Linux / PEAR::DBのバグに当たった

PS3 Linux

スラッシュドット ジャパン | 「PS3 Linux」 始動

そのうち自宅サーバとして運用されるようになるだろうか。5万円の実勢価格は小型PCとして考えれば安いと思うし。

PEAR::DBのバグに当たった

PEAR::DBのバグに当たってしまった。簡単に再現する上、根本的な解決策が見当たらない。そろそろPDOとかPEAR::MDB2に移行しようかな。

現象:

$dbh->getOne("SELECT COUNT(*) FROM keywords WHERE keyword=' into '");
Fatal error: Call to a member function fetchInto() on a non-object in /usr/local/lib/php/DB/common.php on line 1242

PEAR::DBのソースを追ってみたところ、上記のSELECT文をSELECT INTO文と誤判定するために失敗していることが判った。(DB::isManip())

正規表現「SELECT .* INTO\s+」で判定していることが原因。バグ報告も上がっているがまだ修正されていない。

PEAR :: Bug #4856 :: isManip bug with 'SELECT .* INTO'

最終更新時刻: 2008年10月17日

[buy] カーナビ(ECLIPSE)購入

最近車で遠出する機会が増えてきたのでカーナビを購入した。機種はECLIPSEのAVN8805HD。決め手はVGAであることと、去年の夏モデルなので安かったこと。

本当は多少高くても今年の夏モデルであるAVN7706HDが欲しかったが、価格差があまりに大きかったので諦めた。

まずはブランド選定から。

  • 無難さ(安心と言い換えてもいい)
  • ナビとしての性能を重視。
  • オーディオや地デジ等のAV機能は優先順位低め。

この条件にECLIPSEが一番合っていると判断した。判断材料はこんな感じ。

  • ナビ関係の開発をやっていた経験による勘
  • 知人のナビや店頭での動作を見て
  • kakaku.com等のクチコミ情報

ECLIPSEは大量のリソースを投入して開発をしてる気がして、面白さはないけど安心感がある。

最終更新時刻: 2008年11月17日

[camera] 京都へ

渡月橋

紅葉

日帰りで京都に行ってきた。ナビが役立った。

去年のリベンジ。去年はカメラの電池がすぐ切れてしまったので。

嵐山・天龍寺、銀閣寺へ。清水寺にも行くつもりだったが、あまりの渋滞に断念。写真はどちらも天龍寺で撮影。

お土産は渡月橋の袂にある、琴きき茶屋の桜餅(餡なし)。

最終更新時刻: 2008年12月10日

[buy] ポータブルDVD MULTIドライブ Panasonic LF-P867C

ポータブルDVD MULTIドライブを購入。主にThinkPad用。

用途

  • CD/DVDドライブのついてないPCのブート
  • データのバックアップ
最終更新時刻: 2008年07月28日

[camera] また京都へ

清水寺1清水寺2清水寺3

土曜日に続いて、今日も京都に行ってきた。

昼に南禅寺を見て、夜は清水寺と永観堂のライトアップを見てきた。

最終更新時刻: 2008年11月11日