2007年9月29日土曜日

yumでphp5,mysqlをインストール

centosplusとdagリポジトリの設定が終わったら、php5、mysqlのインストール、アップデートを始めます。
まずは現在のバージョンを確認。
# php -v
PHP 4.3.9 (cgi)
# mysql
入ってない
ではphpから
# yum update php

でOK。他にphp-mysqlとか、gdとか、使うモジュールも入れておきましょう。
続いてmysql
# yum install mysql

これで依存関係もまとめてインストールできます。なお、これだとインストールされるのはmysqlのクライアントだけで、サーバーがインストールされないので
# yum install mysql-server

もやっておきましょう。
以上で完了です。

2007年9月28日金曜日

centosplusとdagを導入

yumでmysqlとかphp5とかを入れる場合はリポジトリにcentosplusやdagを入れる必要があります。
# vi /etc/yum.repos.d/CentOS-Base.repo
まずはcentosplusの記述。
既に[centosplus]があるので、baseurlとenabledを以下のようにします。

baseurl=http://ftp.riken.jp/Linux/centos/$releasever/centosplus/$basearch/
enabled=1

続いてdag。
これは新規で記述を追加します。

[dag]
name=Dag RPM Repository for RHEL4/CentOS4
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el4/en/$basearch/dag/
enabled=1
gpgcheck=1

そしてGPG-KEYを取得。
# rpm --import http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt
# rpm --import ftp://ftp.riken.jp/Linux/dag/RPM-GPG-KEY.dag.txt

パソコンおやじさんのページをそのまま使わせていただきました。

よく使うyumコマンド一覧

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/611usefllyum.html

↑こちらのページにあったのを、便利そうなのでコピーさせていただきました。


































































コマンド概要
check-updateアップデート可能なパッケージの一覧を表示
cleanダウンロードしたパッケージと古いヘッダを削除する。clean allと同じ
clean oldheaders古いヘッダを削除
clean packagesダウンロードしたパッケージを削除
info利用可能なパッケージの情報を表示
info パッケージ名指定したパッケージの情報を表示
install パッケージ名指定したパッケージをインストール
list利用可能なパッケージの一覧を表示
list installedインストール済みのパッケージ一覧を表示
list updatesアップデート可能なパッケージの一覧を表示
provides パッケージ名パッケージに含まれるファイルの一覧を表示
remove パッケージ名指定したパッケージをアンインストールする。指定したパッケージと依存関係があるパッケージは、削除するかどうか確認を求める
search キーワードキーワードでパッケージを検索する。検索の対象は、RPMファイルのName、Packager、Dummary、Descriptionの各フィールド
updateアップデート可能な全パッケージをアップデート
update パッケージ名指定したパッケージをアップデート

2007年9月27日木曜日

yumの初期設定

yumを使ったパッケージ更新をしたいと思います。

まずは初期設定。

最初にGPG key をインポートします。これをしないとyumが使えないらしい。

# rpm --import http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-CentOS-4

続いてパッケージをダウンロードするサーバーをデフォルトからrikenに変更します。
このページのまんまに設定。

http://www.aconus.com/~oyaji/centos/yum_centos.htm

なお、yum-plugin-fastestmirrorという最速のミラーサーバーを探してくれるプラグインもあるみたいなのですが、riken固定で良さそうなので導入は見送りました。

そしてひとまず

# yum update

を実行。

数十分かかってダウンロード(約71MB)&インストールが完了しました。
なお、yumによる自動更新は怖いのでしません。

# chkconfig yum off

としておきます。

phpのセッションIDを引数で保持する

セッションIDはクッキーで保持するのが普通ですが、
session.use_trans_sid
をOnにすることで引数で保持させることも可能です。
これにより、phpが自動でhrefタグの引数やformのhiddenにセッションIDを入れてくれるので、ページを遷移してもセッションが切れることがありません。便利です。
ただし、、
JavaScriptで「onClick=aiueo.php」とか書いたり、スクリプト内で「header("Location: aiueo.php");」とかやってるとその時点でセッションが切れてしまうので注意が必要です。

2007年9月25日火曜日

LANカード(PCC-TXD FEther)を認識してくれない

OSインストールが無事完了したので、次はネットワークにつなげます。
と思ったんですが、LANカードを認識してくれませんでした。
使ってるのはcoregaのPCC-TXD FEtherというカード。
さっそくググってみるとたくさん出てきました。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/485ditctpccard.html
http://network.station.ez-net.jp/common/ethernet/corega/pcctxd.asp
http://pcnikki.exblog.jp/1989120/
このあたりを参考にして「/etc/pcmcia/config」を編集して「/etc/rc.d/init.d/pcmcia restart」するものの、エラーが出てしまう。こんな感じ。
Module pcmcia_core is in use by yenta_socket
このエラーメッセージでググってみるものの、特にめぼしい情報なし。うーん、困った・・・
しばらく試行錯誤してみるもダメ。あきらめかけたそのとき、期待せずに打った
# kudzu
のコマンドで認識してくれました。よくわからないけど、結果オーライってことで。。。
めでたくネットワークにつながったので、次からはyumのお勉強を始めます。

CentOSの勉強開始

突然ですが、CentOSの勉強を始めます。
勉強の過程で得た知識をこのカテゴリで公開していこうと思います。
とりあえず自宅にあまっていたノートPC(セレロン700Mhz、メモリ512MBくらい)にインストールしました。バージョンは4.5です。ファイナルリリースです。
インストールの手順は特に難しいこともないので割愛します。CentOS インストール とかでググればたくさん出てきます。
ちなみにCentOSの読みは「セントス」なんだそうです。「セントオーエス」ではありません。

2007年9月20日木曜日

Pear::DBは古い、これからはPear::MDB2だ

日ごろ愛用してるPear::DBですが、いつのまにか時代遅れになっていたようです。

http://itpro.nikkeibp.co.jp/article/COLUMN/20070827/280396/

今後はPear::MDB2が基本路線になっていくようです。Pear::DBでできることは、Pear::MDB2でもほぼすべてカバーできているようです。

http://www.phpied.com/db-2-mdb2/

移行するにはプログラム全部見直しが必要だし、テストも必要。面倒だなぁ。。。
でもPear::MDB2にして実行速度が速くなるのは魅力だな。と思ったんですが、

http://blog.zuzara.com/2006/09/07/112/

ほとんど変わらないみたいですね。

同じ移行コスト払うならPDOにしちゃったほうが良さそう。

でもPDOってgetOne()とかがないからちょっと面倒なんですよね。ま、それも半年くらい前に調べたことなので今はもう改善されてるのかもしれない。ちょっと調べてみよう。。

2007年9月13日木曜日

ページのメモリ使用量を調べる

javascriptを使ったページを作っていたら、
「このページのスクリプトがInternet Explorerの実行速度を遅くしています。スクリプトを実行しつづけると、コンピュータが反応しなくなる可能性があります。スクリプトを中断しますか?」
という警告メッセージが出ました。
どうやらこれは重い処理をループするなどしてメモリを大量に使うと出るメッセージのようです。
で、調べてみるとメモリ使用量を調べるアプリがありました。
Drip IE Leak Detector
http://outofhanwell.com/ieleak/index.php?title=Main_Page
こちらはFireFoxのアドオン。
Leak monitor
http://phpspot.org/blog/archives/2006/10/javascriptfiref.html
こちらのアドオンはページを閉じた時にメモリリークがあったらアラートを出してくれるというものです。インストールしても「ツール」などにメニューが出てくるわけでもなく、最初はインストールに失敗したのかと思ってしまいました。

2007年9月11日火曜日

File_Archiveでファイルを圧縮する

仕事で作っているアプリで、効率化のためにテキストファイルZIPで圧縮するようにしました。
PearのFile_Archiveでそれができます。Archive_Zipというのもあるんですが、こっちはメンテされていないみたいです。
使い方はこんな感じ。

require_once('File/Archive.php');
File_Archive::extract(
File_Archive::read("./text.txt"),
File_Archive::toArchive("text.zip", File_Archive::toOutput())
);

かなり簡単です。
なお圧縮をするにはphpを「--with-zlib」オプションでコンパイルする必要があります。

2007年9月10日月曜日

フォームのファイル参照フィールドに値を手入力すると、submitしても何も起こ らない

IEでの話です。FireFoxの場合は手入力した値は無視されます。
MSのページにこの仕様について記述がありました。
http://support.microsoft.com/kb/890981/ja
確かに、「input type="file"」のフィールドをサーバー側、もしくはJavaScriptなどでコントロールできてしまうとローカルのファイルを強制的にアップさせたりなどできちゃうので、セキュリティにかなりやばいです。
なのでこの処理については納得なんですが、submitしてもウンともスンとも言わないというのはちょっと分かりづらいですね。アラート出したりしてくれるといいんですが。

Yeti/0.01からのアクセスを遮断

webalizerを見ていたら、見慣れないUSERAGENTからの大量のアクセスがあった。
Yeti/0.01 (nhn/1noon, yetibot@naver.com, check robots.txt dai...
とある。どうやら韓国のnaver.comのロボットらしい。
韓国のサーチエンジンにインデックスされてもメリットはないし、サーバーの負荷になるだけなのでアクセスを拒否しておきました。
ちなみに「Yeti/0.01」のほかに「Yeti/0.01i」というロボットもきていました。こっちは携帯コンテンツ用かな?