Ostrzeżenie: podczas uruchamiania Apache 2.4 na Ubuntu 14 apache2ctl -Vnie działa bez uprawnień roota (... i nie drukuje wersji). Podczas gdy działa na Ubuntu 12 z Apache 2.2. Zdradliwy.
philippe_b
Działa na Ubuntu 12.04 i uważam, że wiele osób nadal używa Ubuntu 12.04, takich jak ja, którzy nie chcą jeszcze aktualizacji do 14, dopóki wszystkie błędy związane z różnymi programami nie zostaną całkowicie wyeliminowane.
Y
Działa naDebian 7.1
Cyclonecode
apachectl -V nie działa na suse10.04, zamiast tego musimy wpisać / usr / sbin / apache2ctl -v, aby uzyskać właściwą odpowiedź z uprawnieniami roota
farzam
1
Działa dobrze na Red Hat Enterprise Linux 6 (64-bit)
Zarówno wielka-V, jak i mała -v jest w porządku, ale może być konieczne użycie sudo, chyba że jesteś zalogowany jako root.
sdexp,
27
Polecenie różni się w zależności od tego, jak Twoja wersja systemu Linux nazwała serwer Apache.
W systemach Debian i Mac OS:
apachectl -v
W systemach Red Hat i Amazon EC2 Linux:
httpd -v
W innych wersjach systemu Linux spróbuj:
apache2 -v
Możesz użyć dwóch różnych flag:
-v # gives you the version number
-V # gives you the compile settings including version number.
Jeśli chcesz uruchomić polecenie z pełnym katalogiem, tak jak zrobił to użytkownik 3786265, ale nie wiesz, gdzie znajduje się twój apache, użyj whereispolecenia:
Znakomity. Twoja odpowiedź obejmuje zakres środowisk serwerowych, w których można próbować znaleźć wersję Apache. Gdyby to było moje pytanie, zaznaczyłbym to jako odpowiedź . Być może jedyną rzeczą, którą sugerowałbym dodanie do twojej odpowiedzi, są wspólne ścieżki. W niektórych środowiskach polecenie może nie znajdować się w zmiennej $ PATH, więc ludzie próbujący je wykonać mogą utknąć. np. W moim środowisku Debiana musiałem użyć, $ /usr/sbin/apache2 -vponieważ właśnie $ apache2 -vpowraca command not found. Polecenie to pomoże użytkownikom zlokalizować ścieżkę do apache, jeśli wymagane:ps -ef | grep apache
inspirednz
apache2 -vdziała również na Debianie (przynajmniej Debian 8 (Jessie) na Raspberry Pi).
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....
To nie zadziała, jeśli w twoich plikach konfiguracyjnych występuje błąd składniowy
Wolfgang Fahl
12
Myślę, że musisz mieć pewność, jaki typ instalacji posiadasz w wersji binarnej lub źródłowej. Aby sprawdzić, które pakiety binarne są zainstalowane: z uprawnieniami administratora wykonaj następujące polecenie:
dpkg -l |grep apache2
wynikiem powinno być coś takiego:
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)
Aby znaleźć wersję, możesz uruchomić:
apache2ctl -V |grep -i "Server version"
wynik powinien być mniej więcej taki: Wersja serwera: Apache / 2.4.10 (Debian)
Ograniczenie do apache można przekazać bezpośrednio do dpkg. Do automatycznej interpretacji potrzebujesz także pojedynczej wartości zamiast listy i nie powinieneś pokazywać „odinstalowanych” pakietów apache2- *. Proszę również rozważyć dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-lub dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1.
smoe
6
Innym sposobem na sprawdzenie wersji zainstalowanej pakietu (w tym Apache) w systemie opartym na Debianie, możemy użyć:
apt-cache policy <package_name>
np. dla Apache
apt-cache policy apache2
który pokaże coś w rodzaju (spójrz na Installedlinię):
Linux www809 2.6.26-2-xen-686 # 1 SMP Środa 21 września 09:56:47 UTC 2011 i686 GNU / Linux
Musiałem iść właściwą ścieżką:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: linia 71: ulimit: otwarte pliki: nie można modyfikować limitu: Operacja niedozwolona
Wersja serwera: Apache / 2.2.21 (Unix)
Zbudowany serwer: 17 grudnia 2011 19:57:53
„apachectl -v” działa dla mnie na komputerach Mac, CentOS i Ubuntu. Na której dystrybucji działałeś? apachectl fullstatus wymaga mod_status, aby to działało. Więc to nie jest uniwersalne rozwiązanie.
Konzulic,
apachectl fullstatusnie działało dla mnie. Mam /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.(Debian 8 - Raspbian on a Raspberry Pi). Jednak apachectl -Vdziałało.
Peter Mortensen
3
Niektóre instalacje Apache są fubarowe (pomyślmy o pakiecie Oracle, OHS) i nie rozumieją flagi -V, ani nie mogą być wywoływane bezpośrednio bez błędów w bibliotece.
Najłatwiejszym sposobem jest użycie stringspolecenia (części binutils) w pliku binarnym httpd i grep dla ciągu, który może przypominać wersję. Na przykład zakładając, że Twój httpdplik binarny znajduje się w katalogu /foo/bar:
Większość plików binarnych (nie wszystkie) zawiera ich wersję (przynajmniej wersję główną) jako ciągi statyczne. Jest to mój sposób na uzyskanie wersji (lub potwierdzenie, że komunikat pomocy binarnego pasuje do rzeczywistej rzeczywistości w terenie).
Czy to nie httpdmusi być w bieżącym katalogu, aby to działało?
Peter Mortensen
1
To pomogło mi znaleźć moją poprzednią wersję na moim zamontowanym starym katalogu głównym z nowej instalacji Ubuntu. Warto wspomnieć: „ciągi” są częścią pakietu „binutils”
Zefiro
@PeterMortensen, tak. Wydaje mi się, że mój przykład zakłada, że httpd będzie w bieżącym katalogu (i że czytelnik wywnioskuje to z przykładu i odpowiednio dostosuje). Teraz edytuję odpowiedź, aby to odzwierciedlić .
luis.spinal
@Zefiro, dziękuję za zgłoszenie się. Zaktualizuję moją odpowiedź, aby wspomnieć binutils.
Jeśli apache jest skonfigurowany tak, aby nie dodawał informacji o wersji do nagłówków HTTP, niczego nie znajdziesz.
Marki555
nmap nie może być zainstalowany (np. na Raspberry Pi):-bash: nmap: command not found
Peter Mortensen
2
Na pewno wpisanie / usr / sbin / apache2 -v w powłoce jest najlepszym i najszybszym sposobem, aby przejść, przy okazji, oto inna opcja, na wypadek, gdyby na serwerze był również PHP i jesteś zainteresowany zbieraniem wersji Apache (i wiele innych więcej informacji) w szybkich krokach programistycznych.
Po prostu stwórz plik info.php w swoim głównym folderze internetowym Apache (lub cokolwiek chcesz) i zapisz w nim:
<?php
phpinfo();
?>
Teraz przejdź do yoursite.com/info.php (lub localhost / info.php dla lokalnych komputerów).
Zobaczysz swoją wersję Apache w sekcji Zmienne PHP , oto przykład:
Zauważ też, że te kroki oczywiście dotyczą każdego serwera WWW z integracją PHP, więc nie ogranicza się to do Apache, a raz utworzona strona może być przydatna podczas tworzenia (nie zapomnij usunąć jej w środowiskach produkcyjnych !!)
Odpowiedzi:
Spróbuj apachectl -V:
Jeśli to nie działa, uruchom polecenie za pomocą
sudo
.źródło
apache2ctl -V
nie działa bez uprawnień roota (... i nie drukuje wersji). Podczas gdy działa na Ubuntu 12 z Apache 2.2. Zdradliwy.Debian 7.1
Działa to dla mojego Debiana:
źródło
Powinieneś użyć apache2ctl -v lub apache2 -v dla nowszych dystrybucji Debiana lub Ubuntu.
lub możesz użyć apache2 -V, aby uzyskać więcej informacji.
źródło
Polecenie różni się w zależności od tego, jak Twoja wersja systemu Linux nazwała serwer Apache.
W systemach Debian i Mac OS:
W systemach Red Hat i Amazon EC2 Linux:
W innych wersjach systemu Linux spróbuj:
Możesz użyć dwóch różnych flag:
Jeśli chcesz uruchomić polecenie z pełnym katalogiem, tak jak zrobił to użytkownik 3786265, ale nie wiesz, gdzie znajduje się twój apache, użyj
whereis
polecenia:źródło
$ /usr/sbin/apache2 -v
ponieważ właśnie$ apache2 -v
powracacommand not found
. Polecenie to pomoże użytkownikom zlokalizować ścieżkę do apache, jeśli wymagane:ps -ef | grep apache
apache2 -v
działa również na Debianie (przynajmniej Debian 8 (Jessie) na Raspberry Pi).Używam Red Hat Linux i działa następująca komenda:
źródło
Wypróbuj z sudo
źródło
Myślę, że musisz mieć pewność, jaki typ instalacji posiadasz w wersji binarnej lub źródłowej. Aby sprawdzić, które pakiety binarne są zainstalowane: z uprawnieniami administratora wykonaj następujące polecenie:
wynikiem powinno być coś takiego:
Aby znaleźć wersję, możesz uruchomić:
wynik powinien być mniej więcej taki: Wersja serwera: Apache / 2.4.10 (Debian)
źródło
Możesz także użyć menedżera pakietów bezpośrednio:
Nie dotyczy to tylko numeru wersji , ale spowoduje szersze wyszukiwanie, które dostarczy Ci innych przydatnych informacji, takich jak wersje modułów.
źródło
dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-
lubdpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
.Innym sposobem na sprawdzenie wersji zainstalowanej pakietu (w tym Apache) w systemie opartym na Debianie, możemy użyć:
np. dla Apache
który pokaże coś w rodzaju (spójrz na
Installed
linię):źródło
Dla mnie działa to na Debianie 6 (Squeeze):
Musiałem iść właściwą ścieżką:
źródło
Próbowałem uruchomić polecenie „httpd -V” i „apachectl -V”, ale nie mogłem wykonać i pojawiał się błąd:
Potem spróbowałem w inny sposób. Poszedłem do katalogu Apache na moim serwerze, a następnie spróbowałem wykonać polecenie:
To zadziałało dla mnie i zwróciło wynik:
Mam nadzieję, że to pomoże.
źródło
Możesz użyć
apachectl -V
lubapachectl -v
. Oba zwrócą informacje o wersji Apache!Możesz być bardziej jak za pomocą
apache2 -V
lubapache2 -v
. Łatwiej zapamiętać!źródło
Dla mnie
apachectl -V
nie działał, aleapachectl fullstatus
dał mi moją wersję.źródło
apachectl fullstatus
nie działało dla mnie. Mam/usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspbian on a Raspberry Pi). Jednakapachectl -V
działało.Niektóre instalacje Apache są fubarowe (pomyślmy o pakiecie Oracle, OHS) i nie rozumieją flagi -V, ani nie mogą być wywoływane bezpośrednio bez błędów w bibliotece.
Najłatwiejszym sposobem jest użycie
strings
polecenia (częścibinutils
) w pliku binarnym httpd i grep dla ciągu, który może przypominać wersję. Na przykład zakładając, że Twójhttpd
plik binarny znajduje się w katalogu/foo/bar
:Większość plików binarnych (nie wszystkie) zawiera ich wersję (przynajmniej wersję główną) jako ciągi statyczne. Jest to mój sposób na uzyskanie wersji (lub potwierdzenie, że komunikat pomocy binarnego pasuje do rzeczywistej rzeczywistości w terenie).
źródło
httpd
musi być w bieżącym katalogu, aby to działało?Lub mniej bezpośrednio:
nmap -A localhost -p 80
źródło
-bash: nmap: command not found
Na pewno wpisanie / usr / sbin / apache2 -v w powłoce jest najlepszym i najszybszym sposobem, aby przejść, przy okazji, oto inna opcja, na wypadek, gdyby na serwerze był również PHP i jesteś zainteresowany zbieraniem wersji Apache (i wiele innych więcej informacji) w szybkich krokach programistycznych.
Po prostu stwórz plik info.php w swoim głównym folderze internetowym Apache (lub cokolwiek chcesz) i zapisz w nim:
Teraz przejdź do yoursite.com/info.php (lub localhost / info.php dla lokalnych komputerów).
Zobaczysz swoją wersję Apache w sekcji Zmienne PHP , oto przykład:
przykładowa strona zrzutu phpinfo ()
Zauważ też, że te kroki oczywiście dotyczą każdego serwera WWW z integracją PHP, więc nie ogranicza się to do Apache, a raz utworzona strona może być przydatna podczas tworzenia (nie zapomnij usunąć jej w środowiskach produkcyjnych !!)
źródło
źródło