XAMPP PHP7版 アップデ-ト

XAMPP PHP7版 レンタルサ-バ対応

XAMPP で PEAR の動作を確認できたらいよいよレンタルサ-バにアップします。
でも、ここがかなりやっかいです。
特に、PHP7版になるとさらにやっかいです。
Web にも Pear のインスト-ルアップ方法の説明があるにはあるのですが、丁寧には書かれていないので、 かなりの知識がないとうまく行きません。
ここでは、「レンタルサ-バのミニバード」を例にとって説明したいと思います。
他のレンタルサ-バでも大体同じような方法でできると思います。
ミニバードには PEAR がインストールされていませんが、以下の順でインストールすることができます。

ミニバード(StarServer)のサーバー管理ツール

http://www.minibird.jp/ からログイン します。
最近は StarServer という名前で出ていますね。
当然 ID と PASS が必要です。
ID と PASS はサ-バ利用申込みをすると発行されます。
サーバー管理ツールの PHP バージョン設定から PHP のバージョンを確認してから設定しておきます。
PHP7 のバージョンは、「PHP7.1.2」と「PHP7.0.16」のどちらかを選ぶことができます。
PHP5 のバージョンも選べますが PHP7 にアップデ-トするるのが目的ですので、当然最新の「PHP7.1.2」を選びます。
「PHP7.1.2」を選ぶと今まで、PHP5 版で動いていた私の場合は、
http://kilowave.minibird.jp/pear/
の PEAR のバッケ-ジマネジャ-は
Parse error: syntax error, unexpected 'new' (T_NEW) in /home/kilowave/ kilowave.minibird.jp/public_html/ pear/PEAR/PEAR/Frontend.php on line 91
なるエラが出でて動かなくなります。
よって、PEAR のバッケ-ジマネジャ-を使うときは、PHP5 版に戻す必要があります。
もし、PHP5 版に戻しながら、PEAR のバッケ-ジマネジャ-を使う選択をするのであれば 以下の PEAR バッケ-ジマネジャ-の PHP7版へのアップデ-トは中止します。

インストールするフォルダを作成

ここでは、FTP(Dream Weaver) からミニバードのサーバーにアップすることを想定しています。
Dream Weaver のファイルアップから、インストールするフォルダ pear を作成します。
例としてフォルダ名を、
「/home/サーバーID/ドメイン名/public_html/pear7」
とします。
実は、私の場合 /home/サーバーID/ドメイン名/public_html/pear には PHP5 の環境で作成した PEAR バッケ-ジマネジャ-があり、これを壊したくないので (なぜ、壊したくないかは後でわかります) pear7 をフォルダ名としています。 サーバーID = kilowave
ドメイン名 = kilowave.minibird.jp
とすると
/home/kilowave/kilowave.minibird.jp/
public_html/pear7
となります。
FTP(Dream Weaver)から接続するとそこはすでに、
/home/kilowave/kilowave.minibird.jp
/public_html/
なので、具体的にはそのル-トに、pear7 のフォルダをつくるだけです。
ここに、PEAR インスト-ルファイル go-pear.php を送り込めば良いのですが、これが一筋縄ではいかないのです。

go-pear.php の変遷

  1. Pear ご本家のファイル

    Web 版 PEAR インスト-ルファイル go-pear.php は Pear ご本家 go-pear にあるのですが

      116行目
      $bootstrap_files = array(
      'PEAR5.php' =>
      'https://raw.github.com/pear/
       pear-core/master/PEAR5.php',
      'PEAR.php'   =>
      'https://raw.github.com/pear/
       pear-core/master/PEAR.php',
      'Archive/Tar.php' =>
      'https://raw.github.com/pear/
       Archive_Tar/master/Archive/
       Tar.php',
      'Console/Getopt.php' =>
      'https://raw.github.com/pear/
       Console_Getopt/trunk/Console/
       Getopt.php',);
    


    https://raw.github.com/pear/
    の部分が間違っていて、どの PEAR ファイルもこの URL には存在しないのです。

  2. 風流修正版

    風流さんがファイルダウンロ-ド先を下記のように github から githubusercontent に変更してくれました。

      'PEAR5.php' =>
      'https://raw.githubusercontent.com/
       pear/pear-core/master/PEAR5.php',
      'PEAR.php' =>
      'https://raw.githubusercontent.com/
       pear/pear-core/master/PEAR.php',
      'Archive/Tar.php' =>
      'https://raw.githubusercontent.com/
       pear/Archive_Tar/master/Archive/
       Tar.php',
      'Console/Getopt.php' =>
      'https://raw.githubusercontent.com/
       pear/Console_Getopt/trunk/
       Console/Getopt.php',);
    
  3. 風流修正Ⅱ版

    でも今度は、Getopt.php がいなくなりました。
    trunk から master へ URL 変更になったのです。
    これも、風流さんが下記のように変更してくれました。

      'Console/Getopt.php' =>
      'https://raw.githubusercontent.com/
       pear/Console_Getopt/master/
       Console/Getopt.php',"
    
  4. PHP5 版対応

    ここまでが、PHP5版対応です。
    PHP5.4~PHP5.6 でインスト-ル可能です。
    なお、この風流修正Ⅱ版ファイルは 風柳メモ に行き、
    「修正版の go-pear.php はこちら」をクリック、php ファイルの内容を表示させ、 これを全部複写(コピ-)します。
    そして複写したファイルを保存します。
    Dream Weaver を開き、ファイル→新規→PHP→作成 を実行、
    余計なファイル内容(デフォルトで表示されている英文字をすべて消去して、複写(コピ-)した 内容を貼付けます。
    これを、go-pear.php の名前で保存します。
    TeraPad の場合は、TeraPad を開き、複写(コピ-)した内容を貼付け、これを、go-pear.php の名前で保存します。

  5. PHP7 版対応

    またまた今度は PEAR5.php ファイルが
    pear/pear-core/master
    からなくなり、
    rsky/pear-core-min/master/
    に URL 変更になったのです。
    以下のように勝手に私が変更しました。

      'PEAR5.php' =>
      'https://raw.githubusercontent.com/
       rsky/pear-core-min/master/
       PEAR5.php',"
    

    ただ、PEAR5.php はインスト-ル失敗の時の飛先ファイルのため、なくても動作可能なようです。

  6. PHP7 版で ereg 関数使用不可

    ereg 正現規表によるマッチング関数は PHP7 から削除され preg_match 関数に置き換わりました。
    1470行目はコメントし
    // if(!ereg(":",$php_bin)){
    if(!preg_match("/:/",$php_bin)){"
    に変更します。

  7. PHP7 版用 go-pear.php ファイル

    ここまで修正したgo-pearファイルは zip圧縮したものを用意しました。
    こちらからダウンロ-ドできるようにしました。
    go-pear-7.php ダウンロ-ド
    zip 解凍すると、go-pear-7.php になり PHP5.4~PHP7.1 までの環境で動作可能です。
    ただし、下記の PHP5版からの継続問題については対応できていません。

  8. PHP5版からの継続問題

    PHP5.6 ぐらい(2015-10-08 に報告あり)からのバグ
    go-pear.php バグ報告
    を参照してください。
    List all packagenames
    及び
    List all categories
    をクリックすると
    Fatal error:
    Call to undefined method PEAR::PEAR_Command_Common()
    が発生する
    この問題は未だ解決されていません。
    当面、List all をクリックしないようにするしかありません。
    私が2015年3月に風流修正版で PHP5.3.3 の環境で Go-PEAR Installer をいれた時はうまく行ったのに、 今では、風流修正Ⅱ版でも PHP5.3.3 の環境ではインスト-ルさえできません。
    一体なんなんだろう。
    個人的には、List all packagenames/categories は
    おまけ機能だし Web版インスト-ラは、コマンドプロンプトの XAMPP の PEAR インスト-ラよりも良いし、 我慢できる範囲かと思っています。
    誰か助けて!!"


やっと Go-PEAR Installer go-pear-7.php が準備できましたので、引き続き レンタルサ-バへの投入方法について説明していきます。


XAMPP PHP7版 レンタルサ-バ対応その2 に進む
XAMPP PHP7版 Composer 対応 に戻る

63PearVillageに戻る