Drowsy Dog's Diary

any note, any thought

2013年2月6日
by kazoo
0 comments

CentOS5.8 + PHP5.3 w/ php-process

CentOS/RHEL 5.x + PHP5.3.x で、sem_get() だの shm_get_var() だのを動かさないといけなくなったお話。

結論から言うと、一度 php/php53 をアンインストールして、webtatic の yumレポジトリを使って php-process をインストールしてやるとよい。

http://www.webtatic.com/projects/yum-repository/

 

で、

 

以下蛇足ですが、ここに至るにえっらい苦労したのでメモしておきます。
同じところにハマりませぬよう。

 

某システムのサーバサイドPHPで使われている sem_get(), shm_get_var() といった SystemV セマフォ及び共有メモリアクセスのシステムコールのラッパーは、PHP5.3 から非推奨になっており、デフォルトのコンフィグレーションでは disable されている。
http://php.net/manual/ja/function.sem-get.php

http://php.net/manual/en/function.shm-get-var.php

 

(ちなみにposix正規表現関係も非推奨になっており、split() とかも怒られます)

http://www.php.net/manual/ja/reference.pcre.pattern.posix.php

 

これらを enable してPHPをソースからビルドすれば良いのですがなかなか面倒。。

 

で、PHP の上記 posix システムコール実装は、5.1の頃は php-posix というモジュールで提供されていたようなのですが、5.3 からは php53-process というパッケージに入っているらしい。

じゃあこれを入れれば良いんじゃ?と思ったら、不思議な依存関係をしており、

 

php or php53

↑依存

php-common

↑↓コンフクリト

php53-common

↑依存

php53-process

 

つまり、PHPのいずれのバージョンを入れようとしても、php-common が必要で、
これがあると php53-common がコンフリクトして入れられない。なので php53-process もダメといった状態になっており、
epel や remi などのメジャーな repo で取得できるパッケージではこれが解決しない。なんでやねん。

 

でで、これを綺麗に解決した上で php-process をインクルードした PHP5.3.10 を提供してくれるのが、

冒頭の Webtatic の repo になるようです。webtatic.com すてき!

 

2012年10月29日
by kazoo
0 comments

Dell Vostro 400 に Cent-OS5.8 を入れる

とある案件で確認が必要になり、手元のあまったDellにインストール。
と、素直に入らない。

2008年頃のマシンだろうか。6.x は簡単に入ったんだけどな。
顛末をメモ。

インストール開始早々に、”Loading ata_piix driver …” が数十分(数時間?)終わらず、
その次に進んだとしても、ドライバが検索できずに詰まってしまう。
どうも SATA ドライブを正しく認識してくれない模様。

 

http://jlug.ml.users.narkive.com/DLXRwpmB/install-linux-on-dell-vostro-400

バージョンは違うが同じ症状っぽい。
このスレッドを参考に、Knoppix(v.6.7.0)から起動→終了→Cent-OSのDVDに入れ替えて、
boot オプションを

と、してやることで無事インストールできました。
(実際Knoppixに意味があったかどうかはよくわからない。。)

あとはインストール後、/etc/grub.conf の boot オプションにも同じものを書いてやって、再起動もOK。