Versie van Apache geïnstalleerd op een Debian-machine

Hoe kan ik controleren welke versie van Apache op een Debian-machine is geïnstalleerd?

Is er een commando om dit te doen?


Antwoord 1, autoriteit 100%

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

Als het voor jou niet werkt, voer je het commando uit met sudo.


Antwoord 2, autoriteit 36%

Dit werkt voor mijn Debian:

$ /usr/sbin/apache2 -v

Antwoord 3, autoriteit 8%

U moet apache2ctl-v of apache2 -vgebruiken voor nieuwere Debian- of Ubuntu-distributies.

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

of u kunt apache2 -Vgebruiken voor meer informatie.

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

Antwoord 4, autoriteit 7%

De opdracht varieert afhankelijk van hoe uw versie van Linux de Apache-server heeft genoemd.

Op Debian en Mac OS:

apachectl -v

Op Red Hat en Amazon’s EC2 Linux gebruik:

httpd -V

Probeer op andere versies van Linux:

apache2 -v

U kunt twee verschillende vlaggen gebruiken:

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

Als je de opdracht wilt uitvoeren met de volledige map zoals user3786265 deed, maar niet weet waar je apache zich bevindt, gebruik dan de opdracht whereis:

whereis httpd

Antwoord 5, autoriteit 6%

Ik gebruik Red Hat Linuxen het volgende commando werkt:

httpd -V

Antwoord 6, autoriteit 4%

Ik denk dat je zeker moet weten welk type installatie je binair of broncode hebt.
Om te controleren welke binaire pakketten zijn geïnstalleerd: voer met rootrechten het volgende commando uit:

dpkg -l |grep apache2

het resultaat zou zoiets moeten zijn als:

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)

Om de versie te vinden, kunt u het volgende uitvoeren:

apache2ctl -V |grep -i "Server version"

het resultaat zou zoiets moeten zijn als:
Serverversie: Apache/2.4.10 (Debian)


Antwoord 7, autoriteit 4%

Probeer het met 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....

Antwoord 8, autoriteit 3%

U kunt de pakketbeheerder ook rechtstreeks gebruiken:

dpkg -l | grep apache

Dit is niet gericht op alleen versienummer, maar het zal een bredere zoekopdracht opleveren, waardoor u andere nuttige informatie krijgt, zoals moduleversies.


Antwoord 9

Een andere manier om een ​​pakket (inclusief Apache) geïnstalleerde versie op een op Debian gebaseerd systeem te controleren, kunnen we gebruiken:

apt-cache policy <package_name>

bijv. voor Apache

apt-cache policy apache2

die iets zal tonen als (kijk naar de regel 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

Antwoord 10

Voor mij werkt dit op Debian 6(Squeeze):

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

Ik moest naar het juiste pad gaan:

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

./apachectl: regel 71: ulimit: open bestanden: kan limiet niet wijzigen: bewerking niet toegestaan ​​
Serverversie: Apache/2.2.21(Unix)
Server gebouwd: 17 december 2011 19:57:53


Antwoord 11

Ik heb geprobeerd het commando “httpd -V” en “apachectl -V” uit te voeren, maar ik kon het niet uitvoeren en kreeg de foutmelding:

-ksh: php: niet gevonden [Geen bestand of map]

Toen probeerde ik het op een andere manier. Ik ging naar de Apache-directory op mijn server en probeerde toen het commando uit te voeren:

./apachectl -v

Dit werkte voor mij en gaf de output terug:

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

Ik hoop dat dit helpt.


Antwoord 12

  1. Je kunt apachectl -Vof apachectl -Vgebruiken. Beiden zullen de Apache-versie-informatie retourneren!

       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"

    Snippet uitvouwen


    Antwoord 13

    Voor mij werkte apachectl -Vniet, maar apachectl fullstatusgaf me mijn versie.


    Antwoord 14

    Sommige installaties van Apache zijn fubar (denk aan Oracle’s verpakking ervan, OHS) en begrijpen de -V-vlag niet, en kunnen ook niet rechtstreeks worden aangeroepen zonder ontbrekende bibliotheekfouten tegen te komen.

    De eenvoudigste manier is om het stringscommando (onderdeel van binutils) op de httpd binary te gebruiken en grep voor een string die op een versie zou kunnen lijken. Bijvoorbeeld, ervan uitgaande dat uw httpdbinaire bestand zich in directory /foo/barbevindt:

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

    De meeste binaire bestanden (niet alle) bevatten hun versie (tenminste hun hoofdversie) als statische tekenreeksen. Dit is mijn go-to-manier om versies te krijgen (of om te bevestigen wat de help-boodschap van een binair bestand overeenkomt met wat de realiteit op de grond werkelijk is.)


    Antwoord 15

    Of, minder direct:

    nmap -A localhost -p 80


    Antwoord 16

    Het is zeker de beste en snelste manier om /usr/sbin/apache2 -vin de shell te typen, trouwens, hier is nog een andere optie, voor het geval er ook PHP op je server zit en jij bent geïnteresseerd in het verzamelen van de Apache-versie (en nog veel meer informatie) in snelle programmatische stappen.

    Maak gewoon een info.php-bestand in je Apache-webhoofdmap (of wat je maar wilt) en schrijf deze erin:

    <?php
        phpinfo();
    ?>
    

    Ga nu naar uwsite.com/info.php(of localhost/info.phpvoor lokale machines).

    U ziet uw Apache-versie in het gedeelte PHP-variabelen, hier is een voorbeeld:

    phpinfo() voorbeelddumppagina

    Houd er ook rekening mee dat deze stappen uiteraard van toepassing zijn op elke webservermet PHP-integratie, dus het is niet beperkt tot Apache en als deze pagina eenmaal is gemaakt, kan deze handig zijn tijdens het ontwikkelen (vergeet niet om verwijder het in productieomgevingen!!)


    Antwoord 17

    dlocate -s apache2 | grep '^Version:'
    

    Other episodes