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


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.