質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • PHP

    24056questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Linux

    4440questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    3146questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    2108questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

CentOS6.6で複数のPHPのバージョンを共存させたい

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 3,711

x_kai

score 48

前提・実現したいこと

前に他の人が使用していたサーバーに、過去にyumで入れたPHP5.4.32を残したまま、
最新のPHPをインストールしたいと思っています。
そこで、ネットで調べて以下の2つの方法を実行してみました。

  1. phpenv + php-buildを使用する方法
  2. Remiリポジトリを使用してyumからインストールする方法

しかし、どちらの方法も上手く行きませんでした。
この2つの方法で発生した問題の解決策、またはこれら以外の別の方法をご教示いただけないでしょうか。

発生している問題・エラーメッセージ

phpenv + php-buildを使用する方法
参考にしたサイト:http://www.aiship.jp/knowhow/archives/25452

この方法を試したところ、phpenv及びphp-buildの導入には成功したのですが、
いざPHPをインストールしようとすると以下のビルドエラーが発生します

[Info]: Loaded extension plugin
[Info]: Loaded apc Plugin.
[Info]: Loaded composer Plugin.
[Info]: Loaded github Plugin.
[Info]: Loaded uprofiler Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: Loaded zendopcache Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 7.1.1 into /root/.phpenv/versions/7.1.1
[Downloading]: https://secure.php.net/distributions/php-7.1.1.tar.bz2

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
curl: (7) Failed to connect to 2a02:cb41::7: ネットワークに届きません
-----------------------------------------

The full Log is available at '/tmp/php-build.7.1.1.20170208100829.log'.
[Warn]: Aborting build.

Remiリポジトリを使用してyumからインストールする方法
参考にしたサイト:http://qiita.com/bezeklik/items/860ba080bf4c664cd8e9

こちらは、最新のPHP(PHP71)のインストールは上手くいって、
「php -v」で最新バージョン(PHP7.1.1)になっていることを確認したのですが、
/var/www/html/phpinfo.phpを作成して、ブラウザで表示してみると、
元々入っていたバージョン(PHP5.4.32)が表示されます。

試したこと

phpenv + php-buildを使用する方法

curlのプロキシの設定の問題と考え、以下のように、curlrcを作成し、プロキシの設定をしました。
しかし、エラーの内容は変わりませんでした。

vi ~/.curlrc
proxy = "http://プロキシサーバーのIPアドレス:ポート番号"

Remiリポジトリを使用してyumからインストールする方法

ネットで調べて、libphp7.so、libphp7-zts.soがないとダメなことが分かったのですが、
/usr/lib64/httpd/modules/の中にlibphp7.so、libphp7-zts.soが生成されておらず、
findで探してみましたがどこにも存在していませんでした。
PHP71を一度消して再インストールしてみましたが生成されませんでした。

補足情報

作業の方ですが、Tera Termを使用して作業を行っています。

OSとApacheのバージョン

  • OS…CentOS6.6
  • Apache…Apache2.2.15

追記(2017/02/09)

調べていると、ソースからインストールからでも共存できる?とのことでしたので、
wgetでソースからインストールしてみました。
以下のサイトを参考にしました。
CentOS6にPHP7をソースからインストール

上記ページの「必要なパッケージをインストール」から「PHPをインストール」までを行いました。
(今のところphp.iniは変わっていません。5.4.32のときのままです。)

結果として、「php -v」コマンドで表示されるバージョン、
及びphpinfo.phpでブラウザに表示されるバージョンともに「7.1.1」になりました。
ただ、元々入っていたPHP5.4.32が残っているのかが分かりません。
元々のPHPが残っているのかどうか、何か確認する術などはあるのでしょうか。
(※上記の質問を、別の質問として新しく投稿した方がいい場合はそのようにいたします。)

ちなみに、httpd.conf内を、以下のように「libphp5.so」を読むように書き換えてみましたところ、

LoadModule php5_module modules/libphp5.so
# LoadModule php7_module        /usr/lib64/httpd/modules/libphp7.so

「php -v」では「7.1.1」と表示されますが、phpinfo.phpでは「5.4.32」と表示されました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+3

どの方法にせよ共通の問題として、同一のApacheインスタンスでは異なるバージョンのPHPを共存させることはできないので、IPアドレスかポート番号を変えて複数のApacheインスタンスを起動する必要があります。以下に、参考となる過去の質問を参照します。

PHP - VPS IPアドレスごとでPHP別バージョン(60683)|teratail

あるいは、2番目以降のPHPをCGIモードで動かすようにすれば、ディレクトリ単位で異なるPHPを動かすことができます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/09 10:22

    回答ありがとうございます。
    リンク先を見てみましたが、別々のバージョンのPHPを同時に扱うのではなく、
    旧バージョンを残しておきつつ、新バージョンを使用したいと思っています。
    それでも複数のApacheインスタンスを起動する方法しかないでしょうか?

    キャンセル

  • 2017/02/09 14:12

    同時に動かすのでなければ、Apacheインスタンスは一つで大丈夫です

    キャンセル

  • 2017/02/09 17:22

    ありがとうございます。

    質問に追記いたしましたので、こちらの方にも回答いただけたら幸いです。

    キャンセル

check解決した方法

0

追記後に調べてみましたが、どうやらphpinfo.phpで表示されていれば大丈夫のようですね。
php.iniが5.4.32の時から変わっていないのに動いていることが、自分の中の不安要素でしたが、
そもそも7.1.1側ではphp.iniを読んでいなかったので、あまり関係ありませんでした。
(ちなみに、今は新しいphp.iniを、既存のphp.iniとは別の場所に置いて、7.1.1で読ませています。)

ですので、追記した方法で、目的の状態になりました。
質問にお答えいただきありがとうございました。
また何かありましたらよろしくお願いします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/10 16:38

    phpinfo() の表示が5.4.32であれば、それはPHP 5.4.32が動いてることになると思いますが、そういう話ではない?

    キャンセル

  • 2017/02/10 16:42

    LoadModuleを切り替えることで、使用するPHPのバージョンがちゃんと変わっているのか気になっていたので、
    そういう話で合っています。
    コメントありがとうございます。

    キャンセル

0

見る限り別のPCで環境を構築して、公開ディレクトリだけ
共通化すればいいような気がしますが
あえて古い環境を残すもしくはあえて新しい環境を導入する
必要性があるのでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • PHP

    24056questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • Linux

    4440questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    3146questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Apache

    2108questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。