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

Amazon SESについて(Route53登録→SESで受信→S3で保存)

本日はAWSのSESのメモ。 2019年はJavaScriptとAWSを勉強する、と心に決め、JavaScriptの方は色々勉強しましたが、AWSの方が手付かずでした。 インフラ系はここ2年ぐらい進歩 …

no image

PHPでのログ出力 PHP monolog

PHPでデバッグするときは、画面上にvar_dumpで情報を見ていたのですが、これができない場面ではログへの出力を行うことになります。 いままではフレームワークに標準でついてたんですが、これを機に一般 …

no image

crontab 確認方法

crontabが動かないときに確認すること。 Contents1 cron自体が動いているか(下記コマンドでログを確認)2 実行権限が正しいか3 プログラム内部のファイルパスが絶対パスになっているか4 …

no image

form以外でのPOST送信(というかHTTP通信全般)

前回の記事に引き続きですが、APIを叩く側はformでデータを送るのではなく、コードの中にPOSTする処理を書きます。 選択肢としては curlコマンドを使う file_get_contentsを使う …

no image

ログ抽出コマンド特集 その2 シェルスクリプトの算術計算、配列とループ

前回の続きですが、ログを収集し、分布(80%台が~%、70%台が~%)を出したいとします。 Contents1 ロジック2 ソース3 気づいたこと4 参考リンク ロジック ロジックは以下のような流れに …