私たちはApacheでhttpsを動作させようとしています。 /usr/local/apache2/bin にあります。
/usr/local/apache2/bin/apachectl start
httpsを使用せずに実行できます。
ただし、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>