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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

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

PHP

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

yum

yumコマンドは、UNIX系OSのRPMパッケージのインストールなどを行うためのプログラムのことです。

rpm

rpmコマンドは、UNIX系OSのroot権限でのみ利用可能なコマンドで、 RPMパッケージのインストールなどができます。

Q&A

解決済

5回答

4452閲覧

既存PHPを残して別バージョンのPHPを並行インストールは可能なのか

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

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

PHP

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

yum

yumコマンドは、UNIX系OSのRPMパッケージのインストールなどを行うためのプログラムのことです。

rpm

rpmコマンドは、UNIX系OSのroot権限でのみ利用可能なコマンドで、 RPMパッケージのインストールなどができます。

0グッド

2クリップ

投稿2016/06/23 03:16

編集2016/06/23 03:23

###目的
サーバー管理会社のカスタマーサポートに連絡してPHPのバージョンを上げたいと伝えたところ、サポート外なので答えられませんとの回答を得ました。

既存PHP環境を変えずに試しに別バージョンのPHPを動かしてみたい場合、どうしたらいいんでしょうか。
このパスだけはこっちのPHPを使う、っていうのが理想ですが。
(さくらのレンタルサーバーみたいにまるっとバージョン切り替えできて元に戻せるのも良いですね。)

###現状
現在使用しているレンタルサーバーは、VPSで、

  • CentOS release 4.9 (Final)
  • Apache/2.0.64
  • PHP 5.3.15 with Suhosin-Patch (cli)

となっております。

サーバー管理会社提供のユーザーマニュアルにはPHPの入れ替えに言及しているコンテンツはありませんでした。

###試したこと

$ yum list php Setting up repositories Reading repository metadata in from local files Available Packages php.i386 4.3.9-3.15 rhn

yum check-update しても、phpは出現しませんでした。 リポジトリが古い状態で固定されてしまっているからでしょうか。

root権限があるので、手順さえ分かれば何かしら出来そうなのですが。

システム稼働中のサーバーで危険を冒せないということもあり、別のサーバーを借り直すのが正しそうな気もします。
(稼働中php&postgresqlシステムの互換性を確認しないといけなくなりますが。)
システム管理面は素人に近いので、害が及ぶ危険性があるなら止めます。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masaya_ohashi

2016/06/23 03:22 編集

そのレンタルサーバは共有サーバですか?それとも物理的に1台のサーバですか?それともVPSのように仮想マシンのうちの1台ですか?質問文にわかる範囲で追記しておくとアドバイスの内容が変わるかと思います。
退会済みユーザー

退会済みユーザー

2016/06/23 03:23

VPSサービスです。質問中に加筆しました。
guest

回答5

0

直接的な回答ではありませんが。。。

  • CentOS release 4.9 (Final)

この時点で、現行サーバの継続利用を前提とするのはやめた方がいいかと思います。
http://qiita.com/yunano/items/4757f86f9e92bb4f503f こちらがわかりやすいですが、CentOS4はすでにサポートが切れてだいぶたっています。
その間に発見された各種の脆弱性などへの対応はなされていない状態になります。

システム稼働中のサーバーで危険を冒せないということもあり、別のサーバーを借り直すのが正しそうな気もします。
(稼働中php&postgresqlシステムの互換性を確認しないといけなくなりますが。)

とのことなので、OSのバージョンアップを兼ねて新規サーバへの移設をお勧めします。

投稿2016/06/23 03:23

kaz.Suenaga

総合スコア2037

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/23 03:30

一般向けのwebサイトではなく、業務で使うプライベートwebシステムですが、新規サーバー移設が妥当なんでしょうか。以前サーバー移行したときミスしたことがありなかなか気が進まなかったのですが。
kaz.Suenaga

2016/06/23 04:33

公開されているか非公開かは、現在の攻撃手法を踏まえるとほとんど比較の意味はありません。 その非公開なWebサイト「も」閲覧するPCが一般の外部公開されているサイトも閲覧するのであればそのPCが攻撃の主体になるわけですから、非公開なWebサーバへのアクセス経路があることになります。 家庭用ルータが標的となってこういった攻撃も頻発しています。 http://blog.trendmicro.co.jp/archives/11200 これは、「内部からしか閲覧できない」ことが防御に役立つものではないことを示しています。
guest

0

ベストアンサー

安全性を重視されるのであれば質問中にあるように別のサーバを借りて、十分な動作確認をした上で移行計画を立てるという方法がベストかと思います。
この方法のいいところは、途中で問題があっても本番には一切影響が出ないところで、安全性では本番サーバでどうにかするという方法とは比較になりません。
また、立ち上げについて外注するという選択肢が比較的簡単かつ安価な選択肢となるというメリットもあります。
*一般に既存サーバのアップデートは工数が大きくかかります。

OSのアップデートの必要性について
プライベートなwebというのが、
接続元のネットワークと端末が全て信頼できる(社内の管理されたネットワークからのみアクセス出来る。アクセスする端末はインターネットには接続できない) という状態であればOSを変更する必要性は比較的低くなります。(とはいえ、アップデートしなくていいというところまでは低くならないと思います)
サーバとはインターネットVPNで接続され、社内LANからはインターネットの他サイトには出れないようなガチガチの構成の場合ですね。

逆に、例えばBasic認証やアプリケーションによる認証のみで認証されていて、インターネットから広く接続されているのであったり個人持ち込みの端末でアクセスできるような状態なのであれば、今すぐ乗っ取られたり、通信を盗聴/改ざんされてもおかしくない様な状態になっているということを認識する必要があります。(各脆弱性に対して個別に対応していれば別です)
特にここ1年で発見されてOpenSSL関連の脆弱性はかなり危険なものが多くあります。

既存サーバで何とかする場合

PHPの別バージョン稼働についてぱっと思いつく比較的安全な方法としては、以下の様な感じでしょうか。

別プロセスでもう一つapache+PHP環境を作る
1.適当なリバースプロキシを立てる
2.現在動いているapache+phpはそのままにして、LISTENポートを変えてリバースプロキシ経由で通信するようにする
3.ソースからビルドしたり標準以外のリポジトリから別バージョンのphpをインストールする
4.apacheのconfコピーしのphpモジュール読み込み部分とLISTENポート部分を変更して別プロセスで起動する
5.リバースプロキシの機能で動かしたいPHPのバージョンごとにそれぞれのapacheに振り分ける

phpenv等を使って切り替える
参考URL
のような形でphpを切り替えられる構成にする。
*CentOS4で使用できるかは調べていませんので使えないかもしれません。

投稿2016/06/23 05:17

編集2016/06/23 05:18
tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/23 07:18

総合的な見地での回答ありがとうございます、助かります。他の方の回答にもありました、別立てでApache+PHPとする方法が現実感がありますね。
tanat

2016/06/23 07:24

そうですね。 リバースプロキシ云々はおいておいて、初期テストのタイミングでは単純に別ポートで立ち上げてしまい、テストもポート指定しながら行えば本番への影響は殆ど無しにすることは出来そうです。 出来ればpostgresqlも別で立ち上げてしまうのがより安心ですね。(メモリ等が許せば)
guest

0

実際には試していなのでなんとも言えませんが
prefixを分けて処理すればインストールはできそうな気がします。
ただしモジュールで組み込むとhttpd側で切り分けができないと思うので

・httpdも二重化する
・モジュールはあきらめてCGIで実行する

のどちらかであれば行けそうな気もします。
いずれにしても特殊な運用方法なので、自己責任でのテストになるでしょう。

投稿2016/06/23 05:20

yambejp

総合スコア114784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/23 07:17

Apacheに組み込まれているでしょうから、別立てでApache+PHPとするなら可能かもしれませんね。ありがとうございます。
guest

0

目的に合うかわかりませんが…。CHH/phpenvというのがあります。
これはrbenvのラッパーで、rbenvと同じ仕組みを使ってPHPのバージョンを切り替えることができます。

ただし、そのまま使うだけだとphpコマンドが切り替わるだけで、Apacheとの連携部分、つまりlibphp5.soのようなモジュールは作成されませんし、切り替わりません。

そこで切り替えのためにはapache-versionが利用できます(モジュール作成はしてくれません。)

とざっくり書きましたが、正直これを動かすのは結構難しいです。gccや他依存するライブラリの適切なバージョンのものが必要です。yumでは入らないものもあります。ビルドオプションをちょこっといじったりも必要です。さらに中身はrbenvなのでRubyも必要です。

私はCentOS6.7+Apache2.2の環境ではなんとかうまくいきましたが、CentOS4+Apache2.0では依存ライブラリの問題がもっとたくさんでると思うので、非常に困難だと思います。

ちなみに同じ名前のphpenv/phpenvというのもありますが、こちらはツールやライブラリの問題が解決できず私はCentOSで動かすことを諦めました。

投稿2016/06/23 05:18

guest1213

総合スコア306

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/23 07:15

こちらの仕組みは存じ上げませんでした。難易度高そうですね。
guest

0

PHPをソースからインストールする方法で可能かと思います。

投稿2016/06/23 07:13

nakamori-daisuk

総合スコア57

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/06/23 07:16

ソースからビルドする際、なにか気をつけるポイントなどありますか?
nakamori-daisuk

2016/06/23 07:18

使用するオプションなどが間違いなくはいっていることと、ヴァージョンがあっているかが気をつけるポイントだと思います。また、パスを通す場合既に入れているPHPとバッティングしないこと かと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問