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

FastCGIに関して

nginxについて学習してきましたが、今回はphp-fpmについてです。 Contents1 そもそもの構成2 CGIのメカニズム3 FastCGI4 nginxでの設定に関して4.1 fastcgi …

no image

静的解析ツールについて

  ある程度の規模のプロジェクトだったら使っているであろう静的解析ツールについて。 Contents1 PHP CodeSniffer2 JavaScript eslit3 C# Style …

no image

herokuネタ(頻出コマンドなど)

10月末ぐらいから使っているPaasのherokuについてよく使うコマンドについて Contents1 アカウント開設&スタート2 基本的な使い方 アカウント開設&スタート http://skill- …

no image

Firebaseでのミニアプリデプロイ

KVS的なDBを使うかもしれず、firebaseの復習をしております。以前、firebaseのサンプルなどちょこちょこ動かしましたが、firebaseに登録をしただけでデプロイまではしておりませんでし …

no image

ロケール情報について

本日、csvファイルを読み込む処理を行っていたんですが、コンソールからコマンドを打つと化けずに、ウェブ上で見ると化けるという現象が発生。 csv,プログラムともに文字コードがutf8で統一していること …