« 2006年10月 | メイン | 2008年01月 »
2006年11月30日
LiveCDのPuppyをHDDインストール
CDからブートするLinuxはKNOPPIXが有名だが、他にも多くのディストリビューションが存在する。
今まで試してみたのは、「KNOPPIX」、「GentooLiveCD」、「巫女GNYO」、「Damn Small」、「Mandows」、「INSERT」等だが、中でもINSERTは軽くて、なかなか良い(緊急起動用としては)。
で、最近「Puppy」というディストリが、ハードディスクへのインストールが可能だということで、やってみた。
なにしろ「puppy-2.12-seamonkey-zdrv.iso」というイメージファイルの容量が、わずか83MBしかない。
CPUがK6-2の233MHzで、メモリを96MBしか積んでないPCでもさくさく動作する。ハードディスクの容量も1GBもあれば十分だ。
NiigataLinuxを動かしていた松下CF-45のハードディスクを、余っていた2GBのものと入れ替え、その2GBHDDにインストールを試みる。
まずCDからPuppyを起動するが、ハードウェア設定は起動時にメニュー選択しなきゃならん(キーボードとか画面の解像度とか)。でも、別に難しくはない(CF-45ではVESAを選択してはいけません)。
起動後、メニューの「Setup」→「Puppy universal installer」を選択して、問い合わせに答えていけばハードディスクへのインストールも簡単にできる。
但し、fdiskによる領域確保やmkfs、mkswapによるフォーマットは、事前に行なっておかなければならない。
で、最後にGRUBをMBRにインストールして完了。
再起動すれば、GRUBメニューが出るので、Enterを押せば問題なく起動するはず・・・。
ところが、(おそらくCF-45だけの問題かもしれんが)最初はハードディスクアクセスするのだが、しばらくすると何も画面に表示されず、止まった状態になる(ハードディスクアクセスも止まる)。
その状態でEnterキーを何回か押すとXが起動するが、かなり汚い画面になる(VESAが選択されているようだ)。
最初に止まった段階で、右カーソルキーを一回押してEnter、その後は単にEnter・・・という感じで、なんとかxorgのきれいな画面で起動できるようになった(一度きちんと起動すれば、次回からは問題なく起動できるようになる)。
次の問題は、キーアサインだ。
PC102のフランス語キーボードの状態になっているので、メニューの「Setup」→「Mouse/keyboard Wizard」でJP106を選択するのだが、日本語キーボードにならない。
この解決策としては、直接「/etc/X11/xorg.conf」をエディター上で修正しなければならないわけだが、ちょっと不親切なユーザインターフェースだよな。
まぁ、とにかくKeyboardセクションのXkbModelの「pc102」を「jp106」に、XkbLayoutの「fr」を「jp」に変更して、再起動すれば、OKだ。
このPuppy、なかなか面白いと感じたのが、「Puppy package manager」という仕組み。まるでSynapticのようだ。
基本的に英語の理解力が必要だけど、そのくらいは仕方ないよな。
投稿者 masatsu : 10:27 | コメント (0)
2006年11月25日
CentOSのApache2にmod_rpafを組み込む
うちのWebサーバは現在3台稼働していて、80番ポートへの接続要求パケットは、ルータによってDelegateサーバへポートフォワードされる。
Delegateは、名前ベースで3台のいずれかに振り分ける(リバースプロキシ)。
リバースプロキシを動かす場合、各Webサーバのアクセスログに、要求元のアドレス(グローバルアドレス)を記録するためには、RPAFモジュールが必要になる。
そこで、CentOSのApache2にも組み込んでみた(以前、VineやPlamoでもやってるので、簡単だ)。
# wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.5.tar.gz
# tar xvzf mod_rpaf-0.5.tar.gz
# cd mod_rpaf-0.5
# vi Makefile
で、この中に
APXS=/usr/sbin/apxs
の一行を追加(または書き換え)する。
(apxsの場所は、phpinfo()で確認した)
しかし、apxsが無い・・・。
どうやらApacheのdevelが必要っぽい。
# yum -y install httpd-devel.i386
「httpd-devel.i386」だけなら145KBなのに、依存の解決で15MBダウンロードした(^^;)。
まぁ、とにかく、この後
# make rpaf-2.0
# make install-2.0
で、モジュールのインストールは完了。
httpd.confに以下を追記して、Apacheを再起動。
---------------------------------------------------
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips (DelegateのプライベートIPアドレス)
---------------------------------------------------
# service httpd restart
で作業終了。
簡単だったので、オチは無い(笑)。
投稿者 masatsu : 23:50 | コメント (0)
2006年11月23日
CentOSをファイルサーバに
LAN内にファイルサーバが一台くらい無いと不便なので、CentサーバにSambaを入れてファイルサーバにする。
設定は、SWATを使ったので簡単だ。
もちろん、901番ポートを開けるのを忘れずに・・・。
で、設定完了後、Sambaを起動(smbdとnmbd)するが、Windowsから見えない(アクセスできない)。
ファイアウォールだと思い、TCPの139番と445番を開ける。・・・でも見えない。
色々調べた結果、開けなきゃならないポートは、
・TCP 137番
・UDP 137番
・UDP 138番
・TCP 139番
・TCP 445番
・UDP 445番
だった。・・・で、iptablesで設定して完了。問題なくWindowsからアクセスできるようになった。
ファイアウォールを動かすのも大変だな。
投稿者 masatsu : 01:45 | コメント (0)
2006年11月21日
CentOSにOracle10g(XE)
データベースといえばMySQL!!って感じの、MySQL好きな私だが、Oracle10gのフリーバージョンが有ると聞いては、入れてみなけりゃなるまいて・・・。
OTNサイトからOracle10g(XE)のLinux版をダウンロードして、CentOSに入れてみた(ちなみに、Windows版も存在する)。
RPMなので楽勝だ。
# rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm
と思ったら、依存で怒られた(^^;)。libaioが要るらしい。
# yum -y install libaio.i386
の後、再度
# rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm
今度は成功した。
chkconfig --listで確認すると、既にoracle-xeがonになっている。
しかし、プロセスは起動してないようなので、
# service oracle-xe start
で起動しようとしたら、「/etc/init.d/oracle-xe configure」を実行せよ、と・・・。
# /etc/init.d/oracle-xe configure
で初期設定を行なうらしい。
問い合わせに対して、(よー分からんので(^^;))基本的にはEnterキーを押すだけ。パスワードだけは入力したけどね。
で、しばらく待つ・・・。結構、時間がかかるなー。
プロンプトに復帰すれば、完了です。
To access the Database Home Page go to "http://127.0.0.1:8080/apex"
のメッセージが表示されたが、私はTelnet経由で操作してるので、「http://(CentサーバのIPアドレス):8080/apex」で接続してみる。
・・・でも「サーバが見つかりません」。
って、ファイアウォールだよ(8080番ポートを開かなきゃ・・・)。
# iptables -I RH-Firewall-1-INPUT -p tcp -s 172.16.0.0/16 -d 0.0.0.0/0 --dport 8080 -j ACCEPT
# service iptables save
OK。ブラウザで接続できた。
ユーザ名に「system」、パスワードに「さっき設定したパスワード」を入力すれば、管理画面が表示される。
後は、ゆっくりやっていこう。スタートガイドらしきものもあるので、それにそってやっていけば、なんとかなるだろう(英語だけどな(^^;))。
投稿者 masatsu : 01:15 | コメント (0)
2006年11月20日
CentOSのApache2
マシンスペック自体はハイスペックなのに、単なるバックアップサーバとして使っているCentサーバ。
もったいないので、Apache2を動かすことにする。
問題は、SELinuxとsuEXECだ。
セキュリティ的には両方とも有効にしたほうが良いのだろうが、色々と設定が面倒くさい。
まず、SELinuxを無効にするには、
/etc/selinux/config
の「SELINUX=enforcing」を「SELINUX=disabled」にしてから再起動するだけ。
問題はsuEXECだが、
/etc/httpd/conf/http.conf
の「LoadModule suexec_module modules/mod_suexec.so」をコメントアウトするだけではダメ。
# apachectl -V
で「SUEXEC_BIN="/usr/sbin/suexec"」を確認して、その場所のsuexecをリネーム(または削除)する。
これで、ユーザホーム上でCGIファイルも問題なく動作するようになった。
まぁ、セキュリティレベルと利便性はトレードオフの関係だから、よしとしよう(^^;)。
投稿者 masatsu : 01:03 | コメント (0)
2006年11月19日
PlamoにGeeklogを設置
CMSツールで有名なのはXOOPSやMamboだが、最近注目されつつあるGeeklogをPlamo上に入れてみた。
$ wget http://www.geeklog.jp/filemgmt/visit.php?lid=87
$ tar xvzf geeklog_jp_1.4.0sr5-1_20060927.tar.gz
$ cd geeklog_jp_1.4.0sr5-1_20060927_7/
$ mv geeklog/ ../
$ cd ../geeklog/
$ mv public_html/ ../public_html/geeklog
でファイルを適宜、配置。
config.phpとlib-common.phpを編集し、パーミッションを設定したら、MySQLデータベースをcreate(「default character set utf8」のオプションを付けて作成)。
注意点としては、config.php内の
$_CONF['have_pear'] = false;
は、trueにするとPHPエラーになる(うちの環境では・・・)。falseでもメール送信できるので問題ない。
あと、$_CONF['cookie_path']と$_CONF['cookiedomain']は、設定が必要。
さらに、~/public_html/geeklog/backendディレクトリ内にtouchでindex.xmlを作成し、パーミッションを646にする(必要なのかどうか分からん(^^;))。
で、ブラウザから
http://friction.mars.ddns.vc/~masatsu/geeklog/admin/install/install.php
にアクセスして、データベーステーブルを作成すれば完了だ。
ところが、特定の一部分の文字だけ文字化けする。UTF-8で設置しているのだが、MySQLもPHPもUTF-8対応にしているのに何でだ?
FAQを調べて、解決策が判明した。
~/geeklog/system/lib-database.php
の最後の行に「DB_query ("SET NAMES 'utf8'" );」を追加して、いったんdrop databaseした後、再度create databaseし、もう一度install.phpでテーブルを作成し直す。
最後にinstallディレクトリを削除して、完了だ。
いやー、なかなか良いよ、これ。
投稿者 masatsu : 15:38 | コメント (0)
2006年11月17日
新サーバ機を購入
Vineサーバがブート不可能になったので、新しいサーバを建てようと、中古ノートPCを購入した。
日立のフローラ270GXで、スペックは
・CPU:Celeron 750MHz
・メモリ:64MB
・HDD:10GB
だが、液晶ヒンジカバー無しのため、格安の13,800円だ(もちろん、ACアダプター付き)。
余っていたSODIMM 256MBを挿すと、(予想外だったが)認識した。
これでメモリ容量は、64MB+256MBで320MBになった。
かなりのハイスペックサーバマシンだな(我が家では・・・(^^;))。
このマシンにCentOS4.4を入れて、LAN内で使用するサーバにする(とりあえずは、Plamoのバックアップサーバに)。
インストール時の設定では、(せっかくなので)ファイアウォールやSELinuxを有効にしてみた。
で、とりあえずはTelnetサーバを入れる(好っきやなぁ(^^;))。
# yum -y install telnet-server
のあと、/etc/xinetd.d/telnetを編集して
# service xinetd restart
別マシンからTelnet接続をしてみるが、接続できない・・・。
あっ!!ファイアウォール・・・(^^;)。
# iptables -I RH-Firewall-1-INPUT -p tcp -s 172.16.0.0/16 -d 0.0.0.0/0 --dport 23 -j ACCEPT
でOK、接続できた(この辺は、NiigataLinuxで体験済みなので・・・)。
さぁ、何の用途で使うかな?・・・って、決めてないんかい!(笑)
投稿者 masatsu : 13:53 | コメント (0)
PlamoにQpopper
POP3が必要なので、QpopperをPlamoパッケージでインストールする。
Plamo4.2用のqpopper4.0.9だ(但し、うちのPlamoは4.0)。
# installpkg qpopper-4.0.9-i386-P1.tgz
inetd.confを修正して、
# telnet localhost 110
で接続テストを行なおうとすると「libgdbm.so.3」が無いと怒られる。
libgdbm.so.2はあるが、libgdbm.so.3は確かに無いので、gdbm-1.8.3.tar.gzを入手し、ビルドしてインストール。
/usr/local/libに作られたlibgdbm.so.3を/usr/libにコピーする。
と、今度は、「libssl.so.0.9.8」が無いというエラー。
確かにlibssl.so.0.9.7はあるけど、0.9.8は無い・・・。
なんか埒が明かないので、pkgtoolでremove(削除)して、4.0用のqpopper-4.0.5-i386-P1.tgzを入れ直す。
# installpkg qpopper-4.0.5-i386-P1.tgz
# telnet localhost 110
問題なく接続できました・・・。
トラブルが発生する理由は、横着しようとする(パッケージで入れようとする)からだな、きっと(^^;)。
投稿者 masatsu : 12:05 | コメント (0)
2006年11月15日
PlamoのPHPをGDサポートにする
OpenPNEがGDやImageMagickを必要とするので、Plamo上にも入れてみた。
まず、GD2とImageMagickをソースからインストール。
# wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
# tar xvzf gd-2.0.33.tar.gz
# cd gd-2.0.33
# ./configure --with-png --with-freetype --with-jpeg --with-xpm
# make
# make install
# wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
# gunzip -c ImageMagick.tar.gz | tar xvf -
# cd ImageMagick-6.3.0/
# ./configure
# make
# make install
PHP4.4.4をソースから入れる際、「--with-gd」オプションを付けると、「zlib」が無いと怒られる。
そこで、zlibをインストール。
# wget http://www.zlib.net/zlib-1.2.3.tar.gz
# tar xvzf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure --shared
# make
# make install
PHPをビルドすると、GIFとPNGはOKだが、JPEGがダメ(Vineのときと同じだな(^^;))。
libjpeg.soは、/usr/libにもともと存在するけど、念のためソースからインストール。
# wget http://www.ijg.org/files/jpegsrc.v6b.tar.gz
# tar xvzf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --enable-shared
# make
# make install
これでlibjpeg.soが新たに/usr/local/libに作成された。
この後、GD2をもう一度ビルド。
で、PHPのリビルド。
# cd php-4.4.4
# ./configure --with-apxs2=/opt/httpd/bin/apxs --with-mysql --enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans --enable-mbregex --with-gd --with-zlib --with-jpeg-dir=/usr/local/lib
# make
# make install
phpinfo()で確認するとGDにJPEGサポートが追加された。
これで、OpenPNEでGIF、PNG、JPEG画像のアップロードができる。
って書くと簡単なようですが、結構試行錯誤してます(^^;)。
投稿者 masatsu : 14:10 | コメント (0)
PlamoにPostfix設定
メールサーバとして稼働していたVineが死亡したので、PlamoでPostfixを動かすことにする。
main.cfを書き換えた後、自動起動するようにしただけ(もちろん、ルータ側のポートフォワード設定も変更)だが、何の苦も無く設定完了。
不正中継チェックも
http://www.rbl.jp/svcheck.php
のサイトでチェックしたところ、全19項目のテストをクリアした。
やっぱ、Postfixは簡単だな。
投稿者 masatsu : 13:19 | コメント (0)
OpenPNEの画像アップロード
VineサーバにSNSソフトのOpenPNEを入れてみた。
一通り動作テストをしてみたが、招待メールも送れるし、日記も書ける。ところが、画像ファイルをアップロードできない。
ImageMagickやGDもRPMで入れてるし、もちろんApache、PHP、MySQLも入っている。
仕方ないので、PHPをソースからビルドすることにした(多分、PHPがGDをサポートしてないようなので)。
PHP4.4.4のソースをダウンロードして、
# ./configure --with-apxs=/usr/sbin/apxs --with-mysql --enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans --enable-mbregex --with-gd --with-zlib --with-jpeg-dir=/usr/lib
としたわけだが、エラーになる。
zlib-1.1.4-0vl1.i386.rpm
libjpeg-6b-15vl1.i386.rpm
libpng-1.0.7-0vl3.i386.rpm
は既に入っていたが、devel関係が必要なようだ。
# rpm -ivh zlib-devel-1.1.4-0vl1.i386.rpm
# rpm -ivh libjpeg-devel-6b-15vl1.i386.rpm
# rpm -ivh libpng-devel-1.0.7-0vl3.i386.rpm
もう一度コンフィグして
# make
# make install
これで、GIFとPNGフォーマットの画像はアップできるようになった。
ところが、JPEGファイルがアップできない。
それじゃーと、GDをリビルドする。
# rpm --rebuild gd-1.8.3-0vl2.src.rpm
(但し、VFlib-develとfreetype-develが必要)
# rpm -Uvh --force gd-1.8.3-0vl2.i386.rpm
# rpm -Uvh --force gd-devel-1.8.3-0vl2.i386.rpm
# rpm -Uvh --force gd-progs-1.8.3-0vl2.i386.rpm
この後、PHPをもう一度リビルド。
うまくいった!
phpinfo()でGD欄にJPEGが登場。
GIF、PNG、JPEGファイルのアップロードが可能となった。
そこまでは良いのだが、その後、いらん事して(LILOをいじって)ブートできなくなりました。
あーーーーーーーーーーーっ、もう!!!って感じ(笑)。
投稿者 masatsu : 00:04 | コメント (0)
2006年11月09日
PHPからMySQLへアクセス
Plamo上に、フリーのSNSソフトである「OpenPNE」を入れてみた。
ところが、エラーが発生して、セットアップ画面まで進めない。どうやらデータベース接続でエラーになっているようだ。
検証用のPHPコードを書いて試してみたところ、やはりデータベース接続ができない・・・。
PHPは、Plamoパッケージで5.0.0を入れているが、--with-mysqlの指定がなされていないようだ。
なので、5.0.0を削除して、4.4.4をソースからコンフィグしてビルドした。
ちなみに、MySQLのバージョンは4.1だ。
それでも接続できない・・・。
色々調べて、なんとか解決した。
「my.cnf」のmysqld設定の箇所に
old-passwords
の一文を追加し、MySQLを再起動。
次に、
$ mysql -u root -p mysql
> update user set password = OLD_PASSWORD('パスワード') where host = 'localhost' and user = 'ユーザ名'
> flush privileges;
で、OK。
結局、オールドパスワード問題だったわけだ。難しいなぁ・・・。