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 の変遷
- 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 には存在しないのです。 - 風流修正版
風流さんがファイルダウンロ-ド先を下記のように 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',);
- 風流修正Ⅱ版
でも今度は、Getopt.php がいなくなりました。
trunk から master へ URL 変更になったのです。
これも、風流さんが下記のように変更してくれました。'Console/Getopt.php' => 'https://raw.githubusercontent.com/ pear/Console_Getopt/master/ Console/Getopt.php',"
- PHP5 版対応
ここまでが、PHP5版対応です。
PHP5.4~PHP5.6 でインスト-ル可能です。
なお、この風流修正Ⅱ版ファイルは 風柳メモ に行き、
「修正版の go-pear.php はこちら」をクリック、php ファイルの内容を表示させ、 これを全部複写(コピ-)します。
そして複写したファイルを保存します。
Dream Weaver を開き、ファイル→新規→PHP→作成 を実行、
余計なファイル内容(デフォルトで表示されている英文字をすべて消去して、複写(コピ-)した 内容を貼付けます。
これを、go-pear.php の名前で保存します。
TeraPad の場合は、TeraPad を開き、複写(コピ-)した内容を貼付け、これを、go-pear.php の名前で保存します。 - 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 はインスト-ル失敗の時の飛先ファイルのため、なくても動作可能なようです。
- PHP7 版で ereg 関数使用不可
ereg 正現規表によるマッチング関数は PHP7 から削除され preg_match 関数に置き換わりました。
1470行目はコメントし
// if(!ereg(":",$php_bin)){
if(!preg_match("/:/",$php_bin)){"
に変更します。 - PHP7 版用 go-pear.php ファイル
ここまで修正したgo-pearファイルは zip圧縮したものを用意しました。
こちらからダウンロ-ドできるようにしました。
go-pear-7.php ダウンロ-ド
zip 解凍すると、go-pear-7.php になり PHP5.4~PHP7.1 までの環境で動作可能です。
ただし、下記の PHP5版からの継続問題については対応できていません。 - 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 対応 に戻る