RECENT POSTS

TWITTER UPDATES

FC3でPHP4をPHP5にアップデート

Posted by Kazu On 7月 - 5 - 2006 16 COMMENTS

FedoraCore3はデフォルトではPHP4です。FC4からはPHP5なのだけど、今まではPHP4でいいや、と思って使ってました。

けど、最近「オブジェクト指向」というものを避けて通れなくなってきていて、PHP4でもオブジェクト指向は取り入れられているが、PHP5ではよりオブジェクト指向らしくなっていて、書店で本を買ってもほとんどPHP5が前提になってきている。

というわけでPHP5にアップデートをしようと思い始めた。


でも気になる点としては、やはりどこでも言われているように、「既存のPHPアプリケーションが動作しなくなる場合がある」というあたりに関してかなりためらいがあった。けど、調べてみた限りでは、PHP5になっても既存のPHPアプリケーションでClassの定義など使ってなければ多分問題ないはず!という結論に達して、イチカバチカのアップデートに踏み切った。


ソースから入れるのはなんとなく嫌だったので、yumでインストールできないか調べたら、ありました。


http://www.sera.desuyo.net/php5/ FC2/FC3 で PHP5 を使おう


準備

まずは/etc/yum.confの修正から。

[main]

cachedir=/var/cache/yum

debuglevel=2

logfile=/var/log/yum.log

pkgpolicy=newest

cachedir=/var/cache/yum

debuglevel=2

logfile=/var/log/yum.log

pkgpolicy=newest

distroverpkg=redhat-release

tolerant=1

exactarch=1

retries=20

obsoletes=1

#gpgcheck=1  ←コメントアウトする



# PUT YOUR REPOS HERE OR IN separate files named file.repo

# in /etc/yum.repos.d



ここから以下を追加

[base]

name=Fedora Core $releasever – $basearch – Base

baseurl=http://download.fedora.redhat.com/pub/fedora//core/$releasever/$basearch/os/



[updates-released]

name=Fedora Core $releasever – $basearch – Released Updates

baseurl=http://download.fedora.redhat.com/pub/fedora//core/updates/$releasever/$basearch/



[sera.desuyo.net]

name=sera.desuyo.net – $basearch – Kazuhiko’s RPMS

baseurl=http://yum.sera.desuyo.net/$releasever/$basearch/

exclude=httpd*,apr*,apr-util*,mod_ssl*


アップデート開始

[root@ manage]# yum update
Repository updates-released already added, not adding again
Repository base already added, not adding again
Setting up Update Process
Setting up Repos
sera.desuyo.net           100% |=========================|  951 B    00:00
dag                       100% |=========================| 1.1 kB    00:00
crash-hat                 100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
updates-released          100% |=========================|  951 B    00:00
extras                    100% |=========================|  951 B    00:00
Reading repository metadata in from local files
sera.desuy: ################################################## 61/61
dag       : ################################################## 4672/4672
crash-hat : ################################################## 85/85
base      : ################################################## 2622/2622
updates-re: ################################################## 910/910
extras    : ################################################## 1700/1700
Excluding Packages in global exclude list
Finished
Excluding Packages from sera.desuyo.net - i386 - Kazuhiko's RPMS
Finished
Excluding Packages from Fedora Extras - 3 - i386
Finished
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package php-ldap.i386 0:5.0.4-2.fc3 set to be updated
---> Package php-pear.i386 0:5.0.4-2.fc3 set to be updated
---> Package php-mysql.i386 0:5.0.4-2.fc3 set to be updated
---> Package php-gd.i386 0:5.0.4-2.fc3 set to be updated
---> Package php.i386 0:5.0.4-2.fc3 set to be updated
---> Package php-mbstring.i386 0:5.0.4-2.fc3 set to be updated
--> Running transaction check

Dependencies Resolved
Transaction Listing:
  Update: php.i386 0:5.0.4-2.fc3 - sera.desuyo.net
  Update: php-gd.i386 0:5.0.4-2.fc3 - sera.desuyo.net
  Update: php-ldap.i386 0:5.0.4-2.fc3 - sera.desuyo.net
  Update: php-mbstring.i386 0:5.0.4-2.fc3 - sera.desuyo.net
  Update: php-mysql.i386 0:5.0.4-2.fc3 - sera.desuyo.net
  Update: php-pear.i386 0:5.0.4-2.fc3 - sera.desuyo.net
Total download size: 4.3 M
のようにしてアップデート完了

しかーし、PHPのバージョンを表示しようと思ったらエラーが。
[root@ etc]# php -v
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php4/gd.so' - /usr/lib/php4/gd.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php4/ldap.so' - /usr/lib/php4/ldap.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php4/mbstring.so' - /usr/lib/php4/mbstring.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php4/mysql.so' - /usr/lib/php4/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.0.4 (cgi) (built: May 16 2005 13:19:47)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies

/etc/php.iniを見てみると、extension_dir = /usr/lib/php4のままになっていた。
; Directory in which the loadable extensions (modules) reside.
extension_dir = /usr/lib/php5

また、PHPアクセラレータは今まで頑張ってもらっていたが、PHP5には未対応なので、php.iniからコメントアウト
; PHPアクセラレータ
#zend_extension="/usr/local/lib/php_accelerator_1.3.3r2.so"
#phpa.shm_ttl = 36h
#phpa.shm_size = 16
#phpa.shm_user=
#phpa.shm_group=

[root@ etc]# php -v
PHP 5.0.4 (cgi) (built: May 16 2005 13:19:47)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies
これでアップデート完了。

の再起動

ここが一番の問題。
果たして無事にが起動されるか。。
もしちゃんと起動してくれなくてエラーだらけだったら、最悪PHP4に戻さないと、しかし戻し方なんて分からん、と思っていたら・・・
[root@ etc]# service httpd restart
うまく再起動されました。

確認

[root@ manage]# cat phpinfo.php
<?php phpinfo(); ?>
とやって、ブラウザでhttp://example.jp/phpinfo.php を表示してみて、ブラウザから見たPHPのバージョンがPHP5になっていればOK。

あとは、やらSquirrelMailとかXoopsとかがきちんと動作するか確認。


こちらもご一緒にどうぞ!

16 Responses

  1. たねちゃん より:

    ( ´_ゝ`)フーン…orz


    Kazuさんちょとごめん、この辺ってホントに超ド素人なんで、今から

    する質問が凄いバカだなぁって思っても、表では笑わず、陰でならば

    大笑いしてもいいから、冗談抜きで教えて…orz


    今、会社で特殊なブログを動かす為にサーバーごとレンタルしてる

    んだけど、このサーバーでPHPが動く様にしたい!と思ったら、何か

    買わないといけなくなるのかな?私が入れる訳では無く、向こうの

    サーバーを貸してくれている会社の方に頼む事になるんだろぉけど

    その相場とかも全然分からんちぃ…ちょっとその辺を教えて下さいorz

  2. Kazu より:

    たねちゃんさん、こにゃ(・ω・)ノ


    PHPはオープンソースなので無償ですわん。

    レンタルサーバ業者がPHPを入れるか入れないかは、業者の方針一つでして、最近ではXREAなんかも含め、無料サービスや有料サービスでもかなり「PHP使えます!なので使ってちょ!」とうたってます。

    でも例えばGeocitiesのように有料でないとCGIやPHPは使えません、なんて言ってるところも多いですね。

    PHPはCGIと一緒でサーバサイドスクリプトなので、サーバに負荷をかけるので嫌がるところは嫌がるわけでんす。

    でもレンタルサーバなんかは、1ユーザに1サーバか少なめのユーザで1サーバなんて感じなので、大抵は使えるようにしてると思うにょ。業者側は、PHPを使えるようにする場合は、単純にインストール(ネットから簡単にダウンロード可能。もちろん無料)して、PHPの簡単な設定と、Apacheの設定、Apacheの再起動の4手順のみなので、管理してる技術者にそれほどのスキルが必要なわけでもなく、たねちゃんさんはお願いするだけでいいと思いまーすよ。

  3. たねちゃん より:

    こ、こぬばうわぁ…orz


    ちょっと私かなぁりお疲れなので、コメントの返事遅いです( つД`)

    Kazuさんの説明、結構分かりやすかったですぅ!自分でもググッて

    調べてみたら、LAMPと言う組み合わせは普通に考える組み合わせ

    とか書いてあって、PHPの優位性とかもかなり分かってきました(笑)

    でも、これによって残念ながらウチの会社のサーバーにPHPを入れる

    って発想はおかげで無くなりましたわ…所詮ASPごときに頼ってる

    様なサーバーにPHP入れても期待出来ないってのが分かりましたし。


    それでちと追加質問ですが、PHPって何種類かあるみたいなんだが

    私みたいにPHPをただ単にモジュールとしてしか使かわない人向け

    のPHPとかってあるの?モジュールとしてだけ動く軽量PHPとか?

    もぉここからは私が個人でサーバー立ち上げる為に聞いておきたい

    事なんで、会社のサーバーなんてどぉーでもいぃぃぃぃぃ!(笑)

  4. Kazu より:

    おごんばんわ


    TypeKeyでサインインすると戻り先で404Notfoundエラーが出るようになってしまった。原因・・・CGIリネーム・・・?古いCGIを指している。。

    さて、たねちゃんさんはPHPを使ってPear::Captchaなどを使いたい、と、そういうようなところでよろしいですか?

    PHPは調べられたように、Perlより軽くてコーディングやデバッグもしやすい、ってところが優位性ですわん。

    それで、なぜ会社のサーバにPHPを入れる発想がなくなるのか、ちと分からん\(?。?”)

    で、たねちゃんさんの言うモジュールとは、Pearのモジュールのことを指すとして、PearはPHPとセットのようなものなので、PHP本体がないと始まらないのです。

    で、サーバ立ち上げるんですかぁ?Σ(=゜ω゜=;)

  5. たねちゃん より:

    ちょ、TypeKeyにサインイン出来ないやんけぇ!(笑)

    ちなみに私のブログではちゃんとサインイン出来るぞよ!

    出来るだけ早い内に直してちょんまげ(笑)


    で、ぱっぱと質問に答えておきますわ。

    なんで会社のサーバーにPHP入れる気が無くなったか?って

    これは単純明快だよ!会社やめる気だからだよ(笑)

    サーバーの立ち上げは…今はまだする気が無いけど

    いつか(いつか(いつか))立ち上げる時の為の予習だよ(笑)

  6. Kazu より:

    あれ?できまふよね?>TypeKeyのサインイン

    もしまだできないようだったら言ってくらはいね。

    サーバ立ち上げまひょ!(笑)

  7. たねちゃん より:

    おろ?今サインインしたら、出来る様になってる…orz


    いいなぁ。実は今、私のトコでサインイン出来るんだが

    書き込むと2重投稿エラーで蹴られる…原因が分からん。


    今はサーバー立ち上げるの無理(笑)必要に迫られてる

    かつ、もぉ1台PC無いと立ち上げる気にはなれんかな。

    でも、必要に迫られるってのは、近い内になるかも(笑)

    その時の為の情報収集であり、勉強中って事だな!

  8. Kazu より:

    後ほどお邪魔させていただき試してみよっと。

    二重投稿エラーってMTが出してるエラーですよね?

    DB初期化の副作用!?いやいや。

    PCはスペック低くても全然へーきですので。

    ちなみにOSはFedoraCore5かCentOSにしまひょ。

    そしたら悩み相談に乗れます(笑)

  9. たねちゃん より:

    ただ今、コメント返しの全サイト行脚中でございます(笑)


    私のブログのTypeKeyは原因がなんとなく分かって対処済み!

    もし、書き込めなかったらCookieをクリアしてみてくださいな。


    FedoraCore5やCentOSってLinuxの事?それって有料?(笑)

    ごめん、こんな事も知らないの( つД`)後でちと調べてみるけど(笑)

  10. Kazu より:

    お、直りました?一度試したらダメだったのでCookieクリアして

    また試してみまーす。

    (何が原因だったんでしょう?って、Cookieか(笑))


    もう知っちゃったかもだけど、Redhat系のフリーのOSです。

    あちこちのサイトで紹介されていてそのとーりにやれば

    あっという間にサーバ構築できちゃいます。

    ぜーんぶタダ!強いて言えば24時間稼動の電気代だけ?

    お勧めサイトは、http://fedorasrv.com/ です。

    早く構築しまひょーよ(笑)

  11. たねちゃん より:

    あ、TypeKeyはCookieとキャッシュをクリアしないとダメっぽorz


    うん、書いた直後にFedoraとかググった(笑)で、探したんだけど

    インストールの仕方が書いてあるサイトが見つからなかったorz

    で、Kazuさんのお勧めサイトには…ちゃんと書いてあるな(笑)

    よっしゃ!今日はずっと、お勧めサイト見続けて終わるだろぉ。

  12. Kazu より:

    なるほど!

    あとでコメントしてみますw

    うちのサーバもそろそろ新しいバージョンのFedoraCoreに

    しようと思ってるんだけど、一番安全なのは別のサーバを

    用意して無事立ち上がったら切り替えるってのが理想だけど

    別のサーバを用意するなんてできないので、リスクを伴う

    バージョンアップ作業を予定中(^^;

    そういう意味ではバージョンアップの少ないCentOSのほうが

    無難ですね。こちらは同じ人の立ち上げてるCentOSで自宅サーバ構築に手順がありまふよ。

  13. たねちゃん より:

    私は有名どころの新しいモノ好きなんで、問答無用で

    FedoraCoreに決定ですわ!しかも多分テスト版…(笑)

    でもあのFedoraCoreのインストールってさ、まさか

    isoファイルをCDに焼かないといけないのか?私、今まで

    CDってモノを焼いた事が無いんですけどぉ…orz

  14. Kazu より:

    あー、たねちゃんさんが新しいモノ好きということを

    うっかり失念しておりました!(/∇≦\)

    つーことでFC6のテスト版に決定ですな。

    ダウンロードしながらインストールというワザもあるらしい

    けど、手っ取り早いのはCDとかDVDからのインストール。

    あとはLINUXの雑誌を買うと漏れなくついてきたりする(笑)

Leave a Reply

Kazuizm は WP Super Cache でキャッシングされているおかげで Digg に耐えられます