PHP5.2.0 にバージョンアップ

 去年の2月にさくらで専用サーバーを借りてからそろそろ1年になります。当時はサーバー管理なんてものは右も左もわからず、apache の再起動のやり方すら知らなかったけど今ではなんだかんだと安定運用出来ております。
 とは言っても、けして攻めの運用ではありません。安定しているというのは、言い換えれば『何も変更していない=過去の遺産を引きずっている』ということでもあるのです。

 今日は夕方くらいに少し時間が出来たので、仕事の片手間に PHP を 4.4.4 から 5.2.0 にバージョンアップしてみました。参考にしたのはこちらのサイトです。
 まず、参考サイトの通りに PHP4 のアンインストール。アンインストールするまえのメモなどもきちんと行いました。

 インストール済の PHP4 に依存する ports のメモを残しておく。

# cp /var/db/pkg/php4-4.4.4_1/+REQUIRED_BY /var/tmp/

 ちなみにボクの環境では中身はこんなのでした。

pear-1.4.11
pear-Date-1.4.7
pear-File-1.2.2,1
pear-HTTP_Request-1.4.0
pear-Net_Socket-1.0.6
pear-Net_URL-1.0.14
pear-Net_UserAgent_Mobile-0.29.0
pear-PHP_Compat-1.4.1
pear-Pager-2.3.4
pear-Var_Dump-1.0.2
pear-XML_XPath-1.2_1
pecl-fileinfo-1.0.3
pecl-pdflib-2.1.0_1
pecl-zip-1.7.3
php4-bcmath-4.4.4_1
php4-bz2-4.4.4_1
php4-calendar-4.4.4_1
php4-crack-4.4.4_1
php4-ctype-4.4.4_1
php4-curl-4.4.4_1
php4-dba-4.4.4_1
php4-dbase-4.4.4_1
php4-domxml-4.4.4_1
php4-exif-4.4.4_1
php4-extensions-1.0
php4-ftp-4.4.4_1
php4-gd-4.4.4_1
php4-gettext-4.4.4_1
php4-gmp-4.4.4_3
php4-iconv-4.4.4_1
php4-imap-4.4.4_1
php4-ldap-4.4.4_1
php4-mbstring-4.4.4_1
php4-mcrypt-4.4.4_1
php4-mhash-4.4.4_1
php4-mysql-4.4.4_1
php4-overload-4.4.4_1
php4-pcre-4.4.4_1
php4-posix-4.4.4_1
php4-session-4.4.4_1
php4-snmp-4.4.4_1
php4-sockets-4.4.4_1
php4-tokenizer-4.4.4_1
php4-xml-4.4.4_1
php4-xmlrpc-4.4.4_1
php4-xslt-4.4.4_1
php4-zlib-4.4.4_1
postfixadmin-2.1.0_7

 PHP4と依存する ports を削除。

# cat /var/db/pkg/php4-4.4.4_1/+REQUIRED_BY | xargs pkg_delete -f
# pkg_delete php4-4.4.4_1

 PHP5 をインストール。

# portinstall lang/php5

 ここで問題が。PHP5 は、実は1年前にサーバーを借りた直後に入れたことがあったのでした(サーバ環境構築日誌)。そのときのインストールの名残が残っていたので、/var/db/ports/php5/options を削除しインストール設定からやりました。apache のモジュールとしてインストールしたかったのです。

 新しくインストールした PHP5 のオプション。

# cat /var/db/ports/php5/options
# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for php5-5.2.0
_OPTIONS_READ=php5-5.2.0
WITH_CLI=true
WITH_CGI=true
WITH_APACHE=true
WITHOUT_DEBUG=true
WITH_SUHOSIN=true
WITH_MULTIBYTE=true
WITH_IPV6=true
WITH_MAILHEAD=true
WITH_REDIRECT=true
WITH_DISCARD=true
WITH_FASTCGI=true
WITH_PATHINFO=true

 次に PHP5 のモジュールをインストールしていきます。

# portinstall lang/php5-extensions

 それから先ほどのメモと見比べて足りないものを入れていく。最後にサーバー再起動で完了。

 本当は最初の PHP5 を入れたときに apache のモジュールの設定をしていなかったので、PHP5 自体とモジュールのインストールを2回しました(アンインストールは1回 :p)
 1年前にうまく動かなかったウェブアプリも今回は動いてくれてます。あのときは Movable Type のダイナミック・パブリッシングもおかしくなったような記憶がありますが、あれは MT 附属の Smarty のバージョンが古かったからでしたっけ。今回は問題ありませんでした。

 今回 PHP5 にした理由は、最近仕事で PHP のコードを書くことが多いのですが環境が PHP5 なので同じ環境が欲しかったからです。
 次は apache2 ですかね。その前に MT3.34 か orz

comments powered by Disqus