Debian makinesinde kurulu Apache sürümü


314

Debian makinede hangi Apache sürümünün yüklü olduğunu nasıl kontrol edebilirim?

Bunu yapmak için bir komut var mı?


4
Stack Overflow, programlama ve geliştirme soruları için bir sitedir. Bu soru konu dışı gibi görünüyor çünkü programlama veya geliştirme ile ilgili değil. Yardım Merkezi'nde hangi konular hakkında soru sorabilirim konusuna bakın . Belki Süper Kullanıcı veya Unix & Linux Stack Exchange sormak için daha iyi bir yer olurdu. Ayrıca bkz. Dev Ops ile ilgili soruları nereye gönderebilirim? .
jww

Yanıtlar:


418

Apachectl -V'yi deneyin:

$ 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 ...

İşinize yaramazsa, komutu ile çalıştırın sudo.


2
Uyarı: Ubuntu 14'te Apache 2.4 çalıştırıldığında, apache2ctl -Vkök ayrıcalıkları olmadan çalışmaz (... ve sürümü yazdırmaz). Oysa Apache 2.2 ile Ubuntu 12 üzerinde çalışıyor. Zor.
philippe_b

Bu Ubuntu 12.04 üzerinde çalışır ve hala henüz 14 yükseltmek istemiyoruz Ubuntu 12.04, benim gibi kullanan bir sürü insan çeşitli yazılım ile tüm böcek giderilinceye kadar complete.y inanıyoruz
JohnMerlino

Üzerinde çalışıyorDebian 7.1
Cyclonecode

apachectl -V dos suse10.04 üzerinde çalışmaz, bunun yerine root izniyle doğru cevabı almak için / usr / sbin / apache2ctl -v
yazmamız gerekir

1
Red Hat Enterprise Linux 6 (64 bit) üzerinde iyi çalıştı
DemiSheep


34

Daha yeni Debian veya Ubuntu dağıtımları için apache2ctl -v veya apache2 -v kullanmalısınız .

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

veya daha fazla bilgi almak için apache2 -V kullanabilirsiniz .

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....

Üst -V veya küçük harf -v tamamdır, ancak root olarak giriş yapmadığınız sürece sudo kullanmanız gerekebilir.
sdexp

27

Komut, Linux sürümünüzün Apache Sunucusunu nasıl adlandırdığına bağlı olarak değişir.

Debian ve Mac OS'de:

apachectl -v

Red Hat ve Amazon'un EC2 Linux kullanımında:

httpd -v

Linux'un diğer sürümlerinde şunları deneyin:

apache2 -v

İki farklı bayrak kullanabilirsiniz:

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

Komutu user3786265 gibi tam dizinle çalıştırmak, ancak apache'nizin nerede olduğunu bilmiyorsanız, şu whereiskomutu kullanın:

whereis httpd

1
Parlak. Cevabınız, içerisindeki Apache sürümünü bulmaya çalışıyor olabileceğiniz çeşitli sunucu ortamlarını kapsar. Benim sorum olsaydı, bunu cevap olarak işaretlerdim . Belki cevabınıza eklemeyi önerebileceğim tek şey ortak yollar. Bazı ortamlarda komut $ PATH içinde olmayabilir, bu nedenle bu komutları deneyen insanlar takılabilir. Örneğin Debian çevremde kullanmak zorundaydım $ /usr/sbin/apache2 -vçünkü sadece $ apache2 -vgeri dönüyor command not found. Bu komut, kullanıcıların gerekirse apache yolunu bulmalarına yardımcı olur:ps -ef | grep apache
inspirednz

apache2 -vDebian üzerinde de çalışır ( Raspberry Pi'de en azından Debian 8 (Jessie)).
Peter Mortensen


15

Sudo ile deneyin

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....

Yapılandırma dosyalarınızda şu anda sözdizimi hatası varsa bu çalışmaz
Wolfgang Fahl

12

İkili veya kaynak ne tür bir kurulumunuz olduğundan emin olmanız gerektiğini düşünüyorum. Hangi ikili paketlerin kurulu olduğunu kontrol etmek için: root haklarıyla aşağıdaki komutu yürütün:

dpkg -l |grep apache2

sonuç şöyle olmalıdır:

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)

Sürümü bulmak için çalıştırabilirsiniz:

apache2ctl -V |grep -i "Server version"

sonuç şöyle olmalıdır: Sunucu sürümü: Apache / 2.4.10 (Debian)


11

Paket yöneticisini doğrudan da kullanabilirsiniz:

dpkg -l | grep apache

Bu sadece sürüm numarasına odaklanmakla kalmaz , aynı zamanda modül sürümleri gibi diğer faydalı bilgileri verecek daha geniş bir arama yapacaktır.


Apache kısıtlaması doğrudan dpkg'a aktarılabilir. Otomatik yorumlama için, bir liste yerine tek bir değere de ihtiyacınız vardır ve "kaldırılmış" apache2- * paketlerinin gösterilmemesi gerekir. Lütfen dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-ya da düşünün dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1.
smoe

6

Debian tabanlı bir sistemde yüklü bir paketi (Apache dahil) kontrol etmek için başka bir yol, şunları kullanabiliriz:

apt-cache policy <package_name>

örneğin Apache için

apt-cache policy apache2

gibi bir şey gösterecektir ( Installedhatta bakın):

$ 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

Benim için bu Debian 6 (Squeeze) üzerinde çalışıyor :

Linux www809 2.6.26-2-xen-686 # 1 SMP Çar 21 Eyl 09:56:47 UTC 2011 i686 GNU / Linux

Doğru yola gitmek zorunda kaldım:

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

./apachectl: line 71: ulimit: açık dosyalar: değiştirilemez: Operasyona izin verilmiyor
Sunucu sürümü: Apache / 2.2.21 (Unix)
Sunucu oluşturuldu: 17 Ara 2011 19:57:53


5

"Httpd -V" ve "apachectl -V" komutunu çalıştırmayı denedim, ancak yürütemedim ve hatayı alıyordum:

-ksh: php: bulunamadı [Böyle bir dosya veya dizin yok]

Sonra başka bir yol denedim. Sunucumdaki Apache dizinine gittim ve komutu çalıştırmayı denedim:

./apachectl -v

Bu benim için çalıştı ve çıktıyı verdi:

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

Umarım bu yardımcı olur.


5
  1. Sen kullanabilir apachectl -Vya apachectl -v. Her ikisi de Apache sürüm bilgilerini döndürür!

        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. Daha çok apache2 -Vveya gibi olabilirsiniz apache2 -v. Hatırlamak daha kolay görünüyor!

        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

Benim apachectl -Viçin işe yaramadı, ama apachectl fullstatusbana versiyonumu verdi.


'apachectl -v' benim için Mac, CentOS ve Ubuntu'da çalışıyor. Hangi dağıtımda çalışıyordun? apachectl fullstatus'un bu işi yapabilmesi için mod_status'a ihtiyacı vardır. Yani bu evrensel bir çözüm de değil.
Konzuliç

apachectl fullstatusbenim için çalışmadı. /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.(Debian 8 - Raspberry Pi'de Raspbian) aldım . Ancak apachectl -Vişe yaradı.
Peter Mortensen

3

Apache'nin bazı kurulumları fubar (Oracle'ın paketlemesini düşünün, OHS) ve -V bayrağını anlamıyor veya eksik kütüphane hatalarına girmeden doğrudan çağrılamıyor.

En kolay yol, httpd ikili dosyasındaki stringskomutu (parçası binutils) ve grep'i bir versiyona benzeyebilecek bir dize için kullanmaktır. Örneğin, httpdikili dosyanızın dizin altında olduğu varsayılarak /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

Çoğu ikili dosya (tümü değil) sürümlerini (en azından ana sürümlerini) statik dizeler olarak içerir. Bu, sürümleri almanın (veya bir ikili yardım mesajının yerdeki gerçekle gerçekten eşleştiğini doğrulamak için) benim yolum.


Değil mi httpdişe bunun için geçerli dizinde olması gerekli?
Peter Mortensen

1
Bu, yeni Ubuntu kurulumunun içinden eski sürümümdeki önceki sürümümü bulmama yardımcı oldu. Bahsetmeye değer: "strings" "binutils" paketinin bir parçası
Zefiro

@PeterMortensen, evet. Sanırım benim örnek httpd geçerli dizinde olacağını (ve okuyucu bu örnek çıkarım ve gerektiği gibi ayarlamak.) Varsayıyorum .
luis.espinal

@Zefiro, dikkatleri için teşekkürler. Binutils'den bahsetmek için cevabımı güncelleyeceğim.
luis.espinal

2

Veya daha az doğrudan:

nmap -A localhost -p 80


Apache HTTP üstbilgilerine sürüm bilgisi eklemeyecek şekilde yapılandırılmışsa, hiçbir şey bulamazsınız.
Marki555

nmap yüklenmemiş olabilir (örneğin bir Raspberry Pi üzerine):-bash: nmap: command not found
Peter Mortensen

2

Elbette / usr / sbin / apache2 -v yazarak kabuğa yazmak, en iyi ve en hızlı yoldur, bu arada başka bir seçenek de, sunucunuzda PHP de olması ve Apache sürümünü (ve daha fazlasını toplamak istiyorsanız) daha fazla bilgi) hızlı programlı adımlarla.

Apache web kök klasörünüzde (veya istediğinizi) bir info.php dosyası oluşturun ve bunları içine yazın:

<?php
    phpinfo();
?>

Şimdi siteniz.com/info.php (veya yerel makineler için localhost / info.php ) adresine gidin .

Apache sürümünüzü PHP Değişkenleri bölümünde göreceksiniz , işte size bir örnek:

phpinfo () örnek döküm sayfası

Ayrıca, bu adımların açıkça PHP entegrasyonu olan herhangi bir web sunucusu için geçerli olduğunu unutmayın , bu yüzden Apache ile sınırlı değildir ve bir kez bu sayfa geliştirilirken kullanışlı olabilir (sadece üretim ortamlarında kaldırmayı unutmayın !!)


1
dlocate -s apache2 | grep '^Version:'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.