Apacheのバージョンはどこにインストールされていますか?

Apacheのバージョンはどこにインストールされていますか?

私たちはApacheでhttpsを動作させようとしています。 /usr/local/apache2/bin にあります。

/usr/local/apache2/bin/apachectl starthttpsを使用せずに実行できます。

ただし、httpd.confでこの行のコメントを削除すると、次のようになります。

Include conf/extra/httpd-ssl.conf

それでは/usr/local/apache2/bin/apachectl startうまくいきません。何度もエラーが出ます。

# /usr/local/apache2/bin/apachectl start
Syntax error on line 56 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
Invalid command 'SSLPassPhraseDialog', perhaps misspelled or defined by a module not included in the server configuration

httpd-ssl.confの行は次のとおりです。

SSLPassPhraseDialog  builtin

また、/usr/sbin/にhttpdをインストールしました。上記の行のコメントを削除すると、その場所のTomcatが正しく実行されます。どちらもバージョン2.2.15を実行していますが、わずか3ヶ月間隔です(違いがあるようです)。

# /usr/local/apache2/bin/httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Jul 17 2017 13:25:42

# /usr/sbin/httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Mar 22 2017 06:52:55

/usr/sbin/ではなく/usr/local/apache2/binでこれが起こる理由を知っている人はいますか?または、この構文エラーを修正する方法を知っている人はいますか?今やっている回避策は/usr/sbinを使うことですが、後でこのような問題が発生する場合に備えてその理由を知りたいです。

ベストアンサー1

Apacheのバージョンはどこにインストールされていますか?

# which -a apache2
/usr/sbin/apache2
# which -a httpd
/usr/sbin/httpd

$ PATHにあると仮定

...この構文エラーを修正する方法は?

ヘルプ/マニュアルに記載されているように、各バージョンに対して異なる構成を使用して使用する必要があります。

/usr/sbin/httpd -h 2>&1 | grep ServerConfigFile
  -f file            : specify an alternate ServerConfigFile

... SSLパスワードダイアログボックス...

「使用可能な構成ディレクティブのリスト」を実行できます。

/usr/sbin/httpd -L | grep -A 2 SSLPassPhraseDialog
SSLPassPhraseDialog (mod_ssl.c)
    SSL dialog mechanism for the pass phrase query ('builtin', '|/path/to/pipe_program', or 'exec:/path/to/cgi_program')
    Allowed in *.conf only outside <Directory>, <Files>, <Location>, or <If>

おすすめ記事