Top > VineLinux3.2 > php4_to_php5
AND OR

PHPバージョンアップ作業(PHP4.X -> PHP5.X)

PHPを、PHP4(4.4)からPHP5(5.2)へバージョンアップ。 Vineのバージョンアップに備えての作業。

PHPのバージョンアップ

  1. まずは、PHP4関係のパッケージを削除。
    # apt-get remove php php-apache php-pear ...
  2. 次に、PHP5関係のパッケージをインストール。結果的には、ほぼ全部。
    # apt-get install php5 php5-apache2 php5-pear ...
  3. 参考サイトを見て、PHPの設定をする。
    # vim /etc/php5/php.ini
  4. Vineのデフォルト状態に、次の設定を追加。
    session.bug_compat_warn = 0  ; Moodle用の設定
    upload_max_filesize = 4M  ; アップロードの上限を4MBに
    error_reporting  =  E_ALL & ~E_NOTICE  ; 通知以外のすべてのエラーを報告
  5. 設定を有効にするため、Apacheを再起動。
    # service apache2 restart 
  6. これで上手くいくはずだったのに、現実は厳しかった(涙)

Squirrelmailが真っ白!

  1. あらかじめ、参考サイトを見て、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");
  2. ところが、Squirrelmailにアクセスすると、画面が真っ白…文字コードの問題かと思って、PHPの設定を変えてもダメ。
  3. Apacheのログを調べてみると、Squirrelmailで使っている、「bayesspam」という追加プラグインで、DBクラス(DB.phpで定義)が使えていない状態。PEARインストールしているのに…
  4. よーく調べてみると、php5-pearにはDB.phpがない状態。仕方ないので、インストール。
    # pear install DB
  5. ようやく使える状態になりました。

PukiWikiが正しく表示されない

  1. 今度は、自分のPukiWikiサイトの表示がおかしい。
    • メニューが大部分表示されない(編集とアクセスの記録だけ表示)
    • コンテンツ部分が大部分表示されない(日本語部分がダメな感じ)
  2. 文字コードの問題かと思って、PHPの設定を変えてもダメ。PukiWikiのスキンファイルの文字コードや、他のファイルの文字コードをチェックしてもダメ。泣きそうな気分で、いろいろ情報を調べたけどダメ(涙)
  3. PukiWikiの公式サイトなどを見ると、どうもPukiWikiのキャッシュ(<wiki_root>/cacheディレクトリ)があやしい。キャッシュを、配布状態にしてみると、正しく表示されるようになった。
    # mv cache cache.bak
    # cp -a <orig_pukiwiki>/cache .
  4. 数時間たって確認すると、やっぱりダメ。なんじゃこりゃ…
  5. 原因判明、これだよこれ。文書数の増加による、cache/autolink.dat内の正規表現のパターンの増大化が原因
  6. Autolink機能をオフに

PHPのアクセラレータをインストール

  1. eAcceleratorを採用。
  2. 最新版をダウンロード(インストール時点では、0.9.5)
  3. ダウンロードしたファイルを展開し、展開先のディレクトリへ
  4. インストール作業
    # /usr/bin/phpize
    # ./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
    # make
    # make install
  5. 設定変更用のWebインターフェースを設置
    # mv control.php <適当なディレクトリ>
    # vi <適当なディレクトリ>/control.php
  6. 該当行を変更して、アクセスできるユーザとそのパスワードを変更
    $user = "admin";
    $pw = "eAccelerator";
  7. キャッシュディレクトリの作成
    # mkdir /tmp/eaccelerator
    # chown apache:apache /tmp/eaccelerator
  8. PHPの設定を変更
    # vi /etc/php5/php.ini
  9. [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"
    
  10. Apacheの再起動
    # service apache2 restart 
  11. おお、結構はやくなった!

参考サイト


リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Tue, 11 Mar 2014 20:20:22 JST (3698d)