TITLE:PHPバージョンアップ作業
*PHPバージョンアップ作業(PHP4.X -> PHP5.X) [#c9f7f021]
PHPを、PHP4(4.4)からPHP5(5.2)へバージョンアップ。
Vineのバージョンアップに備えての作業。
**PHPのバージョンアップ [#y6936fec]
+まずは、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が真っ白! [#c14d5a18]
+あらかじめ、参考サイトを見て、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が正しく表示されない [#ifdb438a]
+今度は、自分のPukiWikiサイトの表示がおかしい。
--メニューが大部分表示されない(編集とアクセスの記録だけ表示)
--コンテンツ部分が大部分表示されない(日本語部分がダメな感じ)
+文字コードの問題かと思って、PHPの設定を変えてもダメ。PukiWikiのスキンファイルの文字コードや、他のファイルの文字コードをチェックしてもダメ。泣きそうな気分で、いろいろ情報を調べたけどダメ(涙)
+PukiWikiの公式サイトなどを見ると、どうもPukiWikiのキャッシュ(<wiki_root>/cacheディレクトリ)があやしい。キャッシュを、配布状態にしてみると、正しく表示されるようになった。
# mv cache cache.bak
# cp -a <orig_pukiwiki>/cache .
+数時間たって確認すると、やっぱりダメ。なんじゃこりゃ…
+原因判明、これだよこれ。文書数の増加による、cache/autolink.dat内の正規表現のパターンの増大化が原因
--http://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F81
+Autolink機能をオフに
*PHPのアクセラレータをインストール [#t824e3c5]
**PHPのアクセラレータをインストール [#t824e3c5]
+eAcceleratorを採用。
--http://www.eaccelerator.net/
+最新版をダウンロード(インストール時点では、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]オプションより前に記述
#pre{{
[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
+おお、結構はやくなった!
**参考サイト [#jec48e86]
-http://vine.1-max.net/
-http://oku.edu.mie-u.ac.jp/~okumura/linux/
-http://zapanet.info/blog/item/863/catid/17
|