web-dev-qa-db-ja.com

RHEL 4は、2つの異なる設定ファイルを使用してApache httpdの2つのインスタンスを実行できますか?

デフォルトのポートでApacheを実行しているRedHat Enterprise Linux4インスタンスがあります。最初のインスタンスとは完全に分離して再起動できる2番目のApacheインスタンスを追加します。これはできますか?

おそらく、非常に単純なPHPスクリプトを非標準ポートで実行できる別の保守しやすいWebサーバーがありますか?デフォルトのインスタンスを使用せずにphpスクリプトをリモートでトリガーできるようにしたいですか? RHELサーバーで実行されているApacheの例。何かアイデアはありますか?

7
Geo

通常の環境では、httpd.confのコピーを作成してから、新しいファイルの次のプロパティを変更できます。

 
#pid file 
 PidFile run/httpd.pid 
 
#http listen port 
 Listen 80 
 
#ログファイル
 ErrorLoglogs/error_log 
 CustomLoglogs/access_log Combined 
 
#server name 
 ServerName default_Host_name 
 
#デフォルトサイトのドキュメントルート
 DocumentRoot "/var/www/html"

また、実装によっては、LockFileなどの追加のプロパティを変更する必要がある場合があります(NFSで実行している場合)

また、いつものように、仮想ホスト定義を使用する場合は、それらをカスタマイズする必要があります。

新しいインスタンスの制御

たとえば、新しくコピーされたファイルの名前が/etc/httpd/conf/instance1.confの場合、次のコマンドを使用してこの新しいインスタンスを開始できます。

 httpd -f /etc/httpd/conf/instance1.conf -k start 

Httpdコマンドのもう1つの便利なオプションは、構成ファイルのエラーをテストするための-tオプションです。

 httpd -f /etc/httpd/conf/instance1.conf -t 

Httpdコマンドの使用方法の詳細については、「man8httpd」を参照してください。

また、他の人が示唆しているように、このインスタンスの管理に役立つ別のinitスクリプトを作成する必要があります。標準のRH/etc/init.d/httpdスクリプトが開始点として機能する必要があります。

9
StackKrish

はい、それは非常に簡単です。基本的には、コマンドラインでデフォルト以外の設定ファイルを使用して2番目のインスタンスを起動する必要があります。 「Apachemultipleinstances」をウェブ検索すると、必要なものが見つかるはずです。

3
user10501

2つのinitスクリプトを作成し、両方とも異なる構成ファイルを指し示します(-fオプション)。 2つの異なるpidファイルを作成することを忘れないでください。

2
Kristaps

2つの異なる設定ファイルがあると、その途中になります。 Kristapsが言及したPIDファイルに加えて、異なるポート(80と443以外)でリッスンするか、異なるインターフェイスにバインドする必要があります。

2
Alex

/ etc/httpdの下の設定ファイルを別のディレクトリにコピーします。それらを変更し、httpd.confなどのServerRoot、DocumentRoot、およびその他のパス関連変数を変更します。次に、httpd-fを呼び出す別のinitスクリプトを作成します

1
TCampbell

これは最も確実に可能です。これらのインスタンスを分離する2つのinit.dスクリプトを作成するのが最善の方法です。実際には、提供されている「httpd」スクリプトを使用して、2番目のインスタンスで使用するオプションに合わせてスクリプトを変更できます。

Initdスクリプトは、優先オプションを使用してサービスを実行するだけです。また、いつでもバイナリを使用してコマンドラインから他のインスタンスを起動できます。

/ usr/sbin/apachectl

これは、言語、構成ファイル、その他のオプションなどのオプションを入力することを除いて、init.dスクリプトが行うすべてのことです。実際、init.dスクリプトは、/ etc/sysconfig/httpdなどの他の場所で作成された変数を参照することがよくあります。そのファイルの変数を変更するのは、バイナリを使用するinit.dスクリプト用です。適度に単純なコードのチェーンです。

1
Jason B Shrout