2006-11-01(Wed) [長年日記]
_ [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をソースからインストール
基本的に最新版を使いたいソフトはソースから。それ以外はパッケージで。
2006-11-02(Thu) [長年日記]
_ [server]mylab.jpがダウン
本日(11/2)15:30頃から17:30までmylab.jpがダウンしていた。
原因は配線(電話線)が抜けていたため。電話線の爪が折れていたので抜けやすくなっていた。
対策として、新しいコードに交換。また、配線がわかりにくくなっていたのでリピートタイで纏めた。
_ [server]サーバメンテナンス
昨日(11/1)6:00〜7:00 www.mylab.jpサーバ(Asus Terminator P4 533)をメンテナンスした。
最近発熱で警告が頻発していたためケースを開けて掃除。ファンの歯ブラシでホコリを払った。ホコリ大杉。
_ [server][programming]開発環境をLinuxに移す(2)
リモートでの開発はレスポンス上問題がある(64kbpsでSSHはちょっと辛い)。やはりローカルにもLinux環境を用意して、通常はそこで作業することにする。
ただしリポジトリ(Subversion)はサーバ側で管理するし、リリース等もサーバ上でやることになるのでサーバ側にも最低限の環境は用意しておく方向で。
通常開発に使用するマシンはThinkPad X31になる。Windowsを捨てる覚悟は無いので、coLinux上に開発環境を整えることにする。
2006-11-03(Fri) [長年日記]
_ [programming]アニメ専門の番組表「アニメガイド」を公開
アニメ専門の番組表サイト「アニメガイド」を作ったので公開した。
特徴は今のところ以下の通り。
- 放送順に番組を表示する。
- 何分後に放送するのかわかる。
- 番組をGoogleカレンダーに登録できる。
データは「しょぼいカレンダー」のデータを利用させて頂きました。というか、このサイトのデータが利用可能であることを知ったことがサイト制作のきっかけです。
「しょぼいカレンダー」を運営されるgaeさんと、データを編集している方々に感謝します。
2006-11-05(Sun) [長年日記]
_ [server][programming]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
参考サイト
- Cooperative Linux(coLinux)のメモ
- CoLinux - Silicon Linux Wiki
- coLinuxインストール - GANAWARE-wiki
- Clouder::Blogger: coLinuxを入れてみる
- Memo/coLinux - メモWiki
追記:インストールを進めていったら空き容量がなくなった。後でコピーすることになったが、時間がかかるので最初に作業しておくべきだった。以下作業手順。
新しいディスクイメージ(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を編集して再起動。
参考サイト
_ [server][programming]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
_ [server][programming]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)
参考記事
_ [server][programming]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
_ [server][programming]coLinux 0.6.4インストール(5) Subversionのインストール
_ [server][programming]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>
2006-11-09(Thu) [長年日記]
_ ThinkPad X31のキーボードを掃除
ThinkPadのキーボードを掃除した。手垢とホコリが取れて新品みたいに綺麗になって、打鍵感も良くなった。
準備したもの
- エアダスター
- ピンセット
- 綿棒
以下手順。
- キートップを全て外す。
- エアダスターでホコリを飛ばす。
- 飛ばしきれなかったホコリはピンセットと綿棒で取り除く。
- キートップを水で濡らした綿棒で拭く。
- キートップをはめる。
手間を取ったけど、商売道具の手入れは大事。
注意点として、キートップを外すときに力を入れすぎるとパンタグラフごと外れてしまう。パンタグラフを取り付けるのは非常に面倒。パンタグラフだけならともかくラバードームまで外れてしまったときはどうしようかと思った。
ただ感心したのは、これらの部品はすべて結構頑丈で、しかも接着剤等を必要としない。ピンセットでごにょごにょやっていればなんとか元に戻った。((-パンタグラフの土台が外れたとき、あきらめて英語キーボードを購入しようかと考えた。-))
しばらく使ってみたが、快適さが比べ物にならない((-それだけ汚れていたということかもしれない-))。これはコーディングがさくさく進みそう。
2006-11-10(Fri) [長年日記]
_ アニメガイドに機能追加
機能追加。
- 各番組ページに「Googleブログ検索」「はてなブックマークの注目エントリー」を表示。
このサイトは2年近く遠ざかっていたWeb制作のリハビリも兼ねている。今回はRSS引っ張ってきただけだけど、今度はちゃんとRESTとかSOAPとかのAPIを使ってみたい。あぁ、あとAJAXも。

2006-11-19(Sun) [長年日記]
_ 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+」で判定していることが原因。バグ報告も上がっているがまだ修正されていない。
2006-11-23(Thu) [長年日記]
_ [buy]カーナビ(ECLIPSE)購入
最近車で遠出する機会が増えてきたのでカーナビを購入した。機種はECLIPSEのAVN8805HD。決め手はVGAであることと、去年の夏モデルなので安かったこと。
本当は多少高くても今年の夏モデルであるAVN7706HDが欲しかったが、価格差があまりに大きかったので諦めた。
まずはブランド選定から。
- 無難さ(安心と言い換えてもいい)
- ナビとしての性能を重視。
- オーディオや地デジ等のAV機能は優先順位低め。
この条件にECLIPSEが一番合っていると判断した。判断材料はこんな感じ。
- ナビ関係の開発をやっていた経験による勘
- 知人のナビや店頭での動作を見て
- kakaku.com等のクチコミ情報
ECLIPSEは大量のリソースを投入して開発をしてる気がして、面白さはないけど安心感がある。






ツッコミを含む