CentOS標準で入っているApacheの他に別プロセスを起動したい
問題
Apacheプロセスを複数起動したい。
解決
いつか設定ファイルをコピー・編集することで複数起動できる。
まずは設定ファイルをコピーする。
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd2.conf # cp /etc/httpd/conf.d /etc/httpd/conf2.d
ドキュメント・ルートを別個に用意する場合は作成しておく。
# mkdir /var/www/html2
NICやポートの設定
httpd2.conf、conf2.d/ssl.conf を編集しNICやポートが重ならないようにする。
特にNICを分ける場合は元々の設定ファイルも編集する必要があるので注意する。
httpd2.conf の編集箇所は以下。
Listen 192.168.11.102:80 : ErrorLog logs/error_log2 : CustomLog logs/access_log2 combined
conf2.d/ssl.conf の編集箇所は以下。
Listen 192.168.11.102:443 : ErrorLog logs/ssl_error_log2 TransferLog logs/ssl_access_log2
サーバの起動
# apachectl /f /etc/httpd/conf/httpd2.conf -k start
サーバの停止
# apachectl /f /etc/httpd/conf/httpd2.conf -k stop
サーバ起動時にエラーが発生する
サーバ起動時に下記メッセージが表示される場合がある。
ポート番号は80あるいは443が表示される。
# apachectl -f /etc/httpd/conf/httpd2.conf -k start (98)Address already in use: make_sock: could not bind to address [::]:80 (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs
Listen でポート番号のみを指定すると、Apacheは全てのNICをListenしてしまう様子。
そのため、各サーバの設定ファイルでIPを指定すれば回避できる。
http.conf だけでなく、ssl.conf の設定も忘れやすいので注意。