PostgreSQLのインストール

ダウンロードはこちらから
7.4.1が最新っぽかったのでこれをwget
PostgreSQL起動用ユーザを追加しておく

$ su –
# useradd postgres
# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql/

んでmake&install

# su – postgres
$ tar -zxvf postgresql-7.2.2.tar.gz
$ cd postgresql-7.2.2/
$ ./configure –enable-multibyte=EUC_JP
$ make all
$ make install
–enable-multibyte= マルチバイト文字のサポート

postgresユーザの.bash_profileに環境変数を設定

export PATH=$PATH:$HOME/bin:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGDATA=/home/postgres/data
export PGLIB=/usr/local/pgsql/lib
export LD_LIBRARY_PATH=/usr/local/pgsql/lib

PostgreSQL初期化&起動

$ source .bash_profile
$ initdb
$ pg_ctl start -l [LogFileName] -s -D /home/postgres/data/ -o -i

とやるっぽいですが、使うつもりはないので実際は起動していません(ぉ

MySQLのインストール

ダウンロードはこちらから
4.0.18が最新っぽかったのでこれをwget
MySQL起動用のユーザを作成しておく

$ su –
# useradd mysql

そしてmake&install

$ tar -zxvf mysql-4.0.18.tar.gz
$ cd mysql-4.0.18/
$ ./configure \
–prefix=/usr/local/mysql \
–with-charset=ujis \
–with-extra-charsets=all \
–with-mysqld-user=mysql \
–localstatedir=/home/mysql/data
$ make
$ su
# make install
–prefix=[DIR] mysqlインストール先
–with-charset=[ujis/sjis] 使用文字コード
–with-extra-charsets=[all/ujis/sjis] 拡張文字コード
–with-mysqld-user=[USER] MySQL起動ユーザ
–localstatedir=[DIR] データベース保存先

mysqlユーザの.bash_profileに以下を追加

export PATH=$PATH:/usr/local/mysql/bin
export MANPATH=$MANPATH:/usr/local/mysql/man

MySQLの初期化&起動

$ source .bash_profile
$ /usr/local/mysql/bin/mysql_install_db –user=mysql
$ /usr/local/mysql/bin/mysqld_safe –user=mysql &

どうやらMySQL3と4ではmysqld_safeの名前が違うらしくかなりはまっていた(ぁ
自動起動させるには一番下の行を/etc/rc.d/rc.localへ追加する。

うーむ

最近RagnarokOnlineのことはあんまり書いてないなぁと思いつつパソコン関係…というかLinux関係
PukiWikiというモノを使ってみようと思ったら、色々別にインストールしないとダメっぽかったので入れてみた。
PukiWikiはPHPという言語(?)で動作している訳ですが、これをいきなりインストールしようとコンパイル方法を調べているとMySQLやらPostgreSQLやらをインストールしないとダメっぽかったので全部入れてみた。
参考サイト
とりあえずMySQLだけメモ書き

PHP4のインストール

ようやくインストール環境が整ったのでいよいよPHP4をインストール
ダウンロードはこちらから
4.3.4が最新っぽかったのでこれを例の如くwget

$ tar -zxvf php-4.2.2.tar.gz
$ cd php-4.2.2/
$ ./configure \
–with-apxs2=/usr/local/apache2/bin/apxs \
–with-pgsql=/usr/local/pgsql \
–with-mysql=/usr/local/mysql \
–enable-mbstring \
–enable-mbstr-enc-trans \
–enable-gd-native-ttf \
–with-gd \
–with-freetype-dir=/usr \
–with-jpeg-dir=/usr \
–with-zlib=/usr \
–with-png-dir=/usr
$ make
$ su
# make install

configureオプションについては調べてないのでよく解りません(ゎ
–with-apxs2はApacheをconfigureした際に-enable-module=soを指定すると後からモジュールを追加できるようになるため、それを利用するためのオプションです。
–enable-gd-native-ttf 以下はGDを組み込む場合に必要らしい。
とりあえずGDライブラリが入ってないとエラーが出ます。
RedHatならXウィンドウ開発環境をインストールしておけば入るっぽ。
これでようやくPHPが使える環境に…長かった

文字コードが…

WinSCPでこのSSHポートから接続し、ファイルリストを見てみるとあら大変
なんと日本語なファイル名のファイルが全滅してるじゃありませんか
これはどうしたモノだと調べてみると、Linuxの使っている文字コードがEUC、Windowsが使っている文字コードがSJISな訳でして、Windowsで表示しようと思うとEUC<>SJISな変換が必要になるとのこと。
WinSCPはこれに対応していないらしく、だめだめぷー
代わりのアプリを探してみたけど、どうにも見つからない…
FTPだとFFFTPとかで文字コード変換に対応しているので、FTPサーバを立ち上げて一時しのぎ的解決をしてみました。
文字コードとかの対応 めんどくさ…

Linuxのメモリ

Linux起動時からメモリ使用量を監視していると、ファイルを読み書きするたびにだんだん減ってくる。
Windowsだと開いたファイルを閉じれば解放されて使われたメモリがもどってくるわけですが、Linuxはどうも挙動が違うみたい。
調べてみると全部バッファとして持ってるようですね…んで、足りなくなったら解放すると
だんだん減ってきてzero近くなるから ちと怖い(苦笑

mod_rewrite導入メモ

Webサーバとして使っているApacheにはURLの一部を別のモノに置き換えて処理しちゃうモジュールがあるわけです
以下 メモ書き

$ ./configure –enable-module=so –enable-module=rewrite –enable-shared=rewrite
$ make
$ su
Password:
# make install

あらら エラーもなく終わっちゃった

Kernelコンパイル2戦目

色々調べた結果、Kernel2.4.23以降ならばドライバ標準で対応しているらしい
サイトまわってKernelアップデートの方法を探る…
以下 メモ書き
とりあえずこのあたりからKernelソースをげっつしてくる
新しい方がいいような気がするので、2.4.25をげっつ

$ su –
password:
# cd /usr/src
# wget ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.25.tar.gz

けっこう大きい…
とりあえず解凍してディレクトリ移動

# tar zxvf ./linux-2.4.25.tar.gz
# cd linux-2.4.25

Linuxインストール時にKernelソースもインストールしていたので 古い.configファイルをコピーしてくる

# cp /usr/src/linux-2.4.18-14/configs/kernel-2.4.18-i686.config .config

既存のKernel設定で新しい.configファイルを作成

# make oldconfig

よく分かんないけどシンボルクリックリンクを変更しないとダメらしい

# rm -f /usr/src/linux
# ln -s /usr/src/linux-2.4.21 /usr/src/linux

カーネル最適化を行う

# make menuconfig

…らしいけどよく解らないのでドライバが組み込まれているかどうかだけ確認した
依存関係確認

# make dep

ゴミを削除

# make clean

カーネルイメージを作成

# make bzImage

カーネルモジュールをコンパイルする

# make modules

モジュールインストール

# make modules_install

/lib/modules/<カーネルのバージョン番号> にインストールされるぽい
んで インストール!

# make install

うちではブートローダにGRUBというやつを使っている(らしい)ので /etc/grub.confにちゃんと設定されているかどうか確認
んで 再起動

# sync
# shutdown -r now

何の問題もなく 再起動完了…うまく行ってよかった~(嬉
とりあえずDMAが使えるかどうか確認

$ su –
Password:
# /sbin/hdpram -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)

おお 使えるぽい
32bit転送やらマルチバイト転送をつけると早くなるらしいのでついでにやってみる

# /sbin/hdpram -d1 -m1 -c1 /dev/hda
/dev/hda:
setting 32-bit IO_support flag to 1
setting multcount to 1
setting using_dma to 1 (on)
multcount = 1 (on)
IO_support = 1 (32-bit)
using_dma = 1 (on)

む いけた
速度測定をしてみる

# /sbin/hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 64 MB in 1.59 seconds = 40.25 MB/sec

おー 40MB/s!
ONにする前は4MB/sだったから10倍ですか 恐ろしい…
Linux起動時に設定されるように書いておく

# vi /etc/rc.d/rc.local
/sbin/hdpram -d1 -m1 -c1 /dev/hda

これでおわりっと

LinuxKernelコンパイル…できない

DMA転送というHDDの読み書きを行う際に使う方式があるんですが、どうやらこのサーバではONになっていないぽくてファイル書き込みが激遅い!
hdparamというコマンドでONに出来るらしいのですが、どうもドライバが対応してないぽくて出来ないんですよね~
で、ドライバ落としてきたのはいいんですが、Windowsみたくつっこんで再起動すればOKってわけには行かないらしくKernelの再コンパイルが必要なんだそうで…
で、ちょっと調べてやってみたわけですが、途中でエラーが出てコンパイル不能…ソース見てもよくわからないので、お手上げ状態です…
まぁ 時間がかかるのは我慢すればいいんですが、どうにもねぇ…