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
-
Je kunt
apachectl -V
ofapachectl -V
gebruiken. 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 -V
niet, maarapachectl fullstatus
gaf 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
strings
commando (onderdeel vanbinutils
) op de httpd binary te gebruiken en grep voor een string die op een versie zou kunnen lijken. Bijvoorbeeld, ervan uitgaande dat uwhttpd
binaire bestand zich in directory/foo/bar
bevindt:$ 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:
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