skillup

技術ブログ

PHP サーバー・ネットワーク

apacheで複数インスタンスの起動

投稿日:2018年8月13日 更新日:

前回のphpenvがらみの引き続きですが、php5.6と7を共存させ、なおかつWEBアプリで動かす方法を調べたところapacheの複数インスタンスがであれば可能だとのこと。

早速調べなんとかできました。

やること

  • apacheの起動ファイルを2つ作る。後述する設定ファイルの読み込みを分ける
  • 設定ファイルを2つに分け、ポート番号やプロセスIDなども分ける

apacheの起動ファイルを2つ作る

通常の起動ファイルであれば/etc/init.d/httpに実行ファイルがあるかと思います。

これをコピーし、/etc/init.d/http2というファイルを作ります。名前はなんでもいいですが・・・

設定ファイル

/etc/init.d/httpd2用の設定ファイルを作ります。(詳細はリンクに任せますが、ディレクトリごと分けたが方が良いです。)

/etc/httpd/conf/httpd2

他修正箇所として、下記に注意。

  • http2の方にphp7の設定(LoadModuleなど)を反映させ、php5の設定は反映させないこと
  • 読み込む子供の設定ファイル(conf.d以下)を変えること(通常のhttpの方でphp7用の設定ファイルを読み込ませないこと)
  • 8080ポートを開放すること
  • 起動時は/etc/init.d/httpd2 startを使うこと
  • アクセスするときはhttp://example.com:8080でアクセスすること→リバースプロキシ使えば大丈夫です。参考リンク Apacheでのリバースプロキシ

またps -auxを見ると下記のようにhttpd2で起動したプロセスが走っていると思います。

またWEB上の確認方法としてはphpinfoを出力させて、php7(5を出したいアプリ上では5)が出ればOKです。

参考リンク

同じApacheをコピーして複数動作させる

Apacheを複数のプロセスで起動する方法

-PHP, サーバー・ネットワーク
-

執筆者:


  1. […] apacheで複数インスタンスの起動 […]

  2. […] apacheで複数インスタンスの起動 […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ネットワーク基礎 OSI参照モデルなど

ここ↓でネットワークの基礎についてかいてあるので定期的に勉強しようと思っています。 3分間 NetWorking Contents1 スニーカーネットからリソース共有2 LANとWAN3 OSI参照モ …

no image

PHPMailerに関して(PHPのメール送信)

PHPのMailライブラリに関して。 今までmb_send_mailとかで誤魔化してましたが、以下のようにライブラリで送るケースのサンプル。 https://github.com/umanari145 …

no image

LaravelでのAPI実装

Laravelで外部からAPI叩いてデータ入力みたいなことをしたかったのでこれを機に勉強。認証とかを通してないのでそのまま公開すると危険です・・(汗) 参考リンク [PHP] Laravel5.6で、 …

no image

PHPでのリフレクション

Javaなどでは結構やりましたが、PHPでも動的にインタンス生成→メソッド呼び出しということをやれるとやれることが一気にふえるため、ちょっとメモです。 Contents1 ソース2 参考リンク ソース …

no image

PDFテンプレートの活用

PDFのテンプレートの活用について。 PDFを出力するプログラムはいろいろありますが、今回はすでにあるPDFをテンプレート化できるライブラリについて。 Contents1 FPDI2 ソース3 参考リ …