PHPバージョンアップ作業(PHP4.X -> PHP5.X)
PHPを、PHP4(4.4)からPHP5(5.2)へバージョンアップ。
Vineのバージョンアップに備えての作業。
PHPのバージョンアップ
- まずは、PHP4関係のパッケージを削除。
# apt-get remove php php-apache php-pear ...
- 次に、PHP5関係のパッケージをインストール。結果的には、ほぼ全部。
# apt-get install php5 php5-apache2 php5-pear ...
- 参考サイトを見て、PHPの設定をする。
# vim /etc/php5/php.ini
- Vineのデフォルト状態に、次の設定を追加。
session.bug_compat_warn = 0 ; Moodle用の設定
upload_max_filesize = 4M ; アップロードの上限を4MBに
error_reporting = E_ALL & ~E_NOTICE ; 通知以外のすべてのエラーを報告
- 設定を有効にするため、Apacheを再起動。
# service apache2 restart
- これで上手くいくはずだったのに、現実は厳しかった(涙)
Squirrelmailが真っ白!
- あらかじめ、参考サイトを見て、PHP5用に<squirrelmail_root>/functions/imap_general.phpを修正。
修正前:fputs ($imap_stream, sqimap_session_id() . " APPEND \"$sent_folder\" (\\Seen) \{$length}\r\n");
修正後:fputs ($imap_stream, sqimap_session_id() . " APPEND \"$sent_folder\" (\\Seen) {".$length."}\r\n");
- ところが、Squirrelmailにアクセスすると、画面が真っ白…文字コードの問題かと思って、PHPの設定を変えてもダメ。
- Apacheのログを調べてみると、Squirrelmailで使っている、「bayesspam」という追加プラグインで、DBクラス(DB.phpで定義)が使えていない状態。PEARインストールしているのに…
- よーく調べてみると、php5-pearにはDB.phpがない状態。仕方ないので、インストール。
# pear install DB
- ようやく使える状態になりました。
PukiWikiが正しく表示されない
- 今度は、自分のPukiWikiサイトの表示がおかしい。
- メニューが大部分表示されない(編集とアクセスの記録だけ表示)
- コンテンツ部分が大部分表示されない(日本語部分がダメな感じ)
- 文字コードの問題かと思って、PHPの設定を変えてもダメ。PukiWikiのスキンファイルの文字コードや、他のファイルの文字コードをチェックしてもダメ。泣きそうな気分で、いろいろ情報を調べたけどダメ(涙)
- PukiWikiの公式サイトなどを見ると、どうもPukiWikiのキャッシュ(<wiki_root>/cacheディレクトリ)があやしい。キャッシュを、配布状態にしてみると、正しく表示されるようになった。
# mv cache cache.bak
# cp -a <orig_pukiwiki>/cache .
- 数時間たって確認すると、やっぱりダメ。なんじゃこりゃ…
- 原因判明、これだよこれ。文書数の増加による、cache/autolink.dat内の正規表現のパターンの増大化が原因
- Autolink機能をオフに
PHPのアクセラレータをインストール
- eAcceleratorを採用。
- 最新版をダウンロード(インストール時点では、0.9.5)
- ダウンロードしたファイルを展開し、展開先のディレクトリへ
- インストール作業
# /usr/bin/phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
# make
# make install
- 設定変更用のWebインターフェースを設置
# mv control.php <適当なディレクトリ>
# vi <適当なディレクトリ>/control.php
- 該当行を変更して、アクセスできるユーザとそのパスワードを変更
$user = "admin";
$pw = "eAccelerator";
- キャッシュディレクトリの作成
# mkdir /tmp/eaccelerator
# chown apache:apache /tmp/eaccelerator
- PHPの設定を変更
# vi /etc/php5/php.ini
- [Zend Optimizer]オプションより前に記述
[eAccelerator]
zend_extension = "/usr/lib/php5/eaccelerator.so"
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = "/tmp/eaccelerator"
eaccelerator.allowed_admin_path = "<適当なディレクトリ>/control.php"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content = "shm_and_disk"
- Apacheの再起動
# service apache2 restart
- おお、結構はやくなった!
参考サイト