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 |