데비안 머신에 설치된 아파치 버전


314

데비안 컴퓨터에 설치된 Apache 버전을 어떻게 확인할 수 있습니까?

이 작업을 수행하는 명령이 있습니까?


4
스택 오버플로는 프로그래밍 및 개발 질문을위한 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제가 아닌 것 같습니다. 참조 내가 여기에 대해 요청할 수 있습니다 어떤 주제 도움말 센터에서. 아마도 Super User 또는 Unix & Linux Stack Exchange 가 더 좋은 곳일 것입니다. 또한 Dev Ops에 대한 질문을 어디에 게시합니까?를 참조하십시오 . .
jww

답변:


418

apachectl -V를 사용해보십시오.

$ apachectl -V
Server version: Apache/2.2.9 (Unix)
Server built:   Sep 18 2008 21:54:05
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
... etc ...

그래도 작동하지 않으면로 명령을 실행하십시오 sudo.


2
경고 : Ubuntu 14에서 Apache 2.4를 실행할 때 apache2ctl -V루트 권한 없이는 작동하지 않습니다 (... 및 버전을 인쇄하지 않음). Apache 2.2가있는 Ubuntu 12에서 작동하는 반면. 교활한.
philippe_b

그것은 우분투 12.04에서 작동하며 많은 사람들이 여전히 나처럼 우분투 12.04를 사용하고 있다고 생각합니다. 저와 같이 다양한 소프트웨어의 모든 버그가 완전히 제거 될 때까지 아직 14로 업그레이드하고 싶지 않습니다
.y

작동Debian 7.1
Cyclonecode

apachectl -V는 suse10.04에서 작동하지 않습니다. 대신 루트 권한으로 정답을 얻으려면 / usr / sbin / apache2ctl -v를 입력해야합니다
farzam

1
6 (64 비트)은 Red Hat Enterprise Linux에 벌금을 근무
DemiSheep


34

최신 데비안 또는 우분투 배포판 에는 apache2ctl -v 또는 apache2 -v 를 사용해야합니다 .

apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built:   May 12 2011 11:58:18

또는 apache2-V 를 사용 하여 자세한 정보를 얻을 수 있습니다 .

apache2 -V
Server version: Apache/2.2.16 (Debian)
Server built:   May 12 2011 11:58:18
Server's Module Magic Number: x
Server loaded:  APR 1.4.2, APR-Util 1.3.9
Compiled using: APR 1.2.12, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....

대문자 -V 또는 소문자 -v는 괜찮지 만 루트로 로그인하지 않은 경우 sudo를 사용해야 할 수도 있습니다.
sdexp

27

명령은 Linux 버전에서 Apache 서버의 이름을 지정한 방법에 따라 다릅니다.

데비안 및 Mac OS :

apachectl -v

Red Hat 및 Amazon EC2 Linux에서는 다음을 사용하십시오.

httpd -v

Linux의 다른 버전에서는 다음을 시도하십시오.

apache2 -v

두 가지 다른 플래그를 사용할 수 있습니다.

-v # gives you the version number
-V # gives you the compile settings including version number.

user3786265와 같이 전체 디렉토리로 명령을 실행하지만 아파치의 위치를 ​​모르는 경우 다음 whereis명령을 사용하십시오 .

whereis httpd

1
훌륭한. 귀하의 답변은 Apache 버전을 찾으려고하는 서버 환경의 범위를 다룹니다. 내 질문이라면 이것을 답변 으로 표시했을 것 입니다. 아마도 귀하의 답변에 추가 할 것을 제안하는 유일한 길은 일반적인 길입니다. 일부 환경에서는 명령이 $ PATH에 없을 수 있으므로 이러한 명령을 시도하는 사람들이 멈출 수 있습니다. 예를 들어, 데비안 환경에서는 $ /usr/sbin/apache2 -v그냥 $ apache2 -v반환 하기 때문에 사용해야했습니다 command not found. 이 명령은 필요한 경우 사용자가 아파치 경로를 찾는 데 도움이됩니다.ps -ef | grep apache
inspirednz

apache2 -v또한 Debian ( Raspberry Pi의 Debian 8 (Jessie) 이상)에서도 작동합니다 .
Peter Mortensen


15

sudo로 사용해보십시오

apachectl -V
-bash: apachectl: command not found

sudo apachectl -V
Server version: Apache/2.4.6 (Debian)
Server built:   Aug 12 2013 18:20:23
Server's Module Magic Number: 20120211:24
Server loaded:  APR 1.4.8, APR-UTIL 1.5.3
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   32-bit
Server MPM:     prefork
  threaded:     no
  forked:     yes (variable process count)
Server compiled with....
bla bla....

구성 파일에 현재 구문 오류가있는 경우 작동하지 않습니다
Wolfgang Fahl

12

바이너리 또는 소스가있는 설치 유형을 확인해야한다고 생각합니다. 설치된 바이너리 패키지를 확인하려면 루트 권한으로 다음 명령을 실행하십시오.

dpkg -l |grep apache2

결과는 다음과 같아야합니다.

dpkg -l |grep apache2
ii  apache2                               2.4.10-10+deb8u8                      amd64        Apache HTTP Server
ii  apache2-bin                           2.4.10-10+deb8u8                      amd64        Apache HTTP Server (modules and other binary files)
ii  apache2-data                          2.4.10-10+deb8u8                      all          Apache HTTP Server (common files)
ii  apache2-doc                           2.4.10-10+deb8u8                      all          Apache HTTP Server (on-site documentation)

버전을 찾으려면 다음을 실행할 수 있습니다.

apache2ctl -V |grep -i "Server version"

결과는 다음과 같아야합니다. 서버 버전 : Apache / 2.4.10 (Debian)


11

패키지 관리자를 직접 사용할 수도 있습니다.

dpkg -l | grep apache

이것은 버전 번호에만 초점을 맞추지는 않지만 더 광범위한 검색을 수행하여 모듈 버전과 같은 다른 유용한 정보를 제공합니다.


아파치 제한은 dpkg로 직접 전달 될 수 있습니다. 자동 해석의 경우 목록이 아닌 단일 값이 필요하며 "설치되지 않은"apache2- * 패키지가 표시되어서는 안됩니다. 또한 고려하시기 바랍니다 dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1.
smoe

6

데비안 기반 시스템에서 패키지 (Apache 포함) 설치 버전을 확인하는 또 다른 방법은 다음과 같습니다.

apt-cache policy <package_name>

예 : Apache

apt-cache policy apache2

다음과 같이 표시됩니다 ( Installed라인 참조).

$ apt-cache policy apache2
apache2:
  Installed: (none)
  Candidate: 2.2.22-1ubuntu1.9
  Version table:
     2.2.22-1ubuntu1.9 0
        500 http://hk.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     2.2.22-1ubuntu1 0
        500 http://hk.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

6

나에게 이것은 Debian 6 (Squeeze) 에서 작동합니다 .

Linux www809 2.6.26-2-xen-686 # 1 SMP 수 9 월 21 일 09:56:47 UTC 2011 i686 GNU / Linux

나는 올바른 길로 가야했다.

/usr/local/apache/bin** $ **./apachectl -v

./apachectl : 71 행 : ulimit : 열린 파일 : 제한을 수정할 수 없습니다 : 작업이 허용되지 않습니다
서버 버전 : Apache / 2.2.21 (Unix)
서버 내장 : 2011 년 12 월 17 일 19:57:53


5

"httpd -V"및 "apachectl -V"명령을 실행하려고했지만 실행할 수없고 오류가 발생했습니다.

-ksh : PHP : 찾을 수 없음 [그런 파일이나 디렉토리가 없습니다]

그런 다음 다른 방법으로 시도했습니다. 서버의 Apache 디렉토리로 이동 한 후 명령 실행을 시도했습니다.

./apachectl -v

이것은 나를 위해 일했고 출력을 반환했습니다.

Server version: Apache/2.2.20 (Unix)
Server built:   Sep  6 2012 17:22:16

이게 도움이 되길 바란다.


5
  1. 당신은 사용할 수 있습니다 apachectl -V또는 apachectl -v. 둘 다 Apache 버전 정보를 반환합니다!

        xgqfrms:~/workspace $ apachectl -v
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
    
    
        xgqfrms:~/workspace $ apachectl -V
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
        Server's Module Magic Number: 20120211:27
        Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
        Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
        Architecture:   64-bit
        Server MPM:     prefork
          threaded:     no
            forked:     yes (variable process count)
        Server compiled with....
         -D APR_HAS_SENDFILE
         -D APR_HAS_MMAP
         -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
         -D APR_USE_SYSVSEM_SERIALIZE
         -D APR_USE_PTHREAD_SERIALIZE
         -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
         -D APR_HAS_OTHER_CHILD
         -D AP_HAVE_RELIABLE_PIPED_LOGS
         -D DYNAMIC_MODULE_LIMIT=256
         -D HTTPD_ROOT="/etc/apache2"
         -D SUEXEC_BIN="/usr/lib/apache2/suexec"
         -D DEFAULT_PIDLOG="/var/run/apache2.pid"
         -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
         -D DEFAULT_ERRORLOG="logs/error_log"
         -D AP_TYPES_CONFIG_FILE="mime.types"
         -D SERVER_CONFIG_FILE="apache2.conf"

  2. 다음을 사용하여 같은 더있을 수 있습니다 apache2 -V또는 apache2 -v. 기억하기 쉬운 것 같습니다!

        xgqfrms:~/workspace $ apache2 -v
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
    
    
        xgqfrms:~/workspace $ apache2 -V
    
        Server version: Apache/2.4.7 (Ubuntu)
        Server built:   Jul 15 2016 15:34:04
        Server's Module Magic Number: 20120211:27
        Server loaded:  APR 1.5.1-dev, APR-UTIL 1.5.3
        Compiled using: APR 1.5.1-dev, APR-UTIL 1.5.3
        Architecture:   64-bit
        Server MPM:     prefork
          threaded:     no
            forked:     yes (variable process count)
        Server compiled with....
         -D APR_HAS_SENDFILE
         -D APR_HAS_MMAP
         -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
         -D APR_USE_SYSVSEM_SERIALIZE
         -D APR_USE_PTHREAD_SERIALIZE
         -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
         -D APR_HAS_OTHER_CHILD
         -D AP_HAVE_RELIABLE_PIPED_LOGS
         -D DYNAMIC_MODULE_LIMIT=256
         -D HTTPD_ROOT="/etc/apache2"
         -D SUEXEC_BIN="/usr/lib/apache2/suexec"
         -D DEFAULT_PIDLOG="/var/run/apache2.pid"
         -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
         -D DEFAULT_ERRORLOG="logs/error_log"
         -D AP_TYPES_CONFIG_FILE="mime.types"
         -D SERVER_CONFIG_FILE="apache2.conf"


3

나를 위해 apachectl -V작동하지 않았지만 apachectl fullstatus내 버전을 주었다.


'apachectl -v'는 Mac, CentOS 및 Ubuntu에서 작동합니다. 어떤 배포판을 사용하고 있었습니까? 이 작업을 수행하려면 apachectl fullstatus에 mod_status가 필요합니다. 따라서 보편적 인 솔루션도 아닙니다.
Konzulic

apachectl fullstatus나를 위해 일하지 않았다. 나는 /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.(라즈베리 파이에 데비안 8-라즈 비안)를 얻었다 . 그러나 apachectl -V작동했습니다.
Peter Mortensen

3

Apache의 일부 설치는 fubar (Oracle의 OHS 패키지라고 생각)이며 -V 플래그를 이해하지 못하거나 라이브러리 오류가 발생하지 않고 직접 호출 할 수 없습니다.

가장 쉬운 방법은 httpd 바이너리 에서 strings명령 (의 일부 binutils) 을 사용하고 버전과 비슷한 문자열에 grep을 사용하는 것입니다. 예를 들어 httpd바이너리가 디렉토리 아래에 있다고 가정합니다 /foo/bar.

$ strings /foo/bar/httpd  | grep 2.2
GLIBC_2.2.5
Oracle-HTTP-Server/2.2.22 (Unix)
Success_Accepted_202
202 Accepted

대부분의 바이너리 (모두는 아님)에는 버전 (적어도 주 버전)이 정적 문자열로 포함됩니다. 이것은 버전을 얻는 방법 중 하나입니다 (또는 바이너리의 도움말 메시지가 실제로 어떤 현실과 일치하는지 확증하는 방법입니다).


이것이 httpd작동하기 위해 현재 디렉토리에있을 필요 는 없습니까?
Peter Mortensen

1
이를 통해 새로운 Ubuntu 설치 내에서 마운트 된 이전 루트에서 이전 버전을 찾을 수있었습니다. "strings"는 "binutils"패키지의 일부입니다
Zefiro

@PeterMortensen, 응. 내 예제는 httpd가 현재 디렉토리에 있다고 가정하고 독자는 예제에서 그것을 추론하고 필요에 따라 조정 한다고 생각합니다 .
luis.espinal

@ Zefiro, 머리 위로 주셔서 감사합니다. binutils에 대한 답변을 업데이트하겠습니다.
luis.espinal

2

또는 덜 직접 :

nmap -A localhost -p 80


아파치가 HTTP 헤더에 버전 정보를 추가하지 않도록 구성되어 있다면 아무것도 찾을 수 없습니다.
Marki555

nmap은은 (예 : 라즈베리 파이)에 설치되지 않을 수 있습니다 :-bash: nmap: command not found
피터 모텐슨에게

2

쉘에 / usr / sbin / apache2 -v 를 입력 하는 것이 서버에 PHP가 있고 Apache 버전을 수집하는 데 관심이있는 경우를 대비하여 가장 좋은 방법 중 하나입니다. 더 많은 정보) 빠른 프로그램 단계.

그냥 만들 info.php의 아파치 웹 루트 폴더에 파일을 (또는 당신이 원하는대로)와 그 안에이 쓰기 :

<?php
    phpinfo();
?>

이제 yoursite.com/info.php (또는 로컬 컴퓨터의 경우 localhost / info.php )로 이동하십시오.

PHP 변수 섹션 에 Apache 버전이 표시 됩니다. 예는 다음과 같습니다.

phpinfo () 예제 덤프 페이지

또한이 단계 는 PHP 통합 웹 서버에 분명히 적용 되므로 Apache에만 국한되지 않으며 일단 생성 된 페이지는 개발하는 동안 편리 할 수 ​​있습니다 (생산 환경에서 제거하는 것을 잊지 마십시오 !!)


1
dlocate -s apache2 | grep '^Version:'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.