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>

관련 정보