Làm cách nào để kiểm tra phiên bản Apache nào được cài đặt trên máy Debian?
Có một lệnh để làm điều này?
Làm cách nào để kiểm tra phiên bản Apache nào được cài đặt trên máy Debian?
Có một lệnh để làm điều này?
Câu trả lời:
Hãy thử 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 ...
Nếu nó không làm việc cho bạn, hãy chạy lệnh với sudo
.
apache2ctl -V
không hoạt động nếu không có quyền root (... và nó không in phiên bản). Trong khi đó, nó hoạt động trên Ubuntu 12 với Apache 2.2. Khó khăn.
Debian 7.1
Điều này hoạt động cho Debian của tôi:
$ /usr/sbin/apache2 -v
Bạn nên sử dụng apache2ctl -v hoặc apache2 -v cho các bản phân phối Debian hoặc Ubuntu mới hơn.
apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built: May 12 2011 11:58:18
hoặc bạn có thể sử dụng apache2 -V để có thêm thông tin.
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....
Lệnh khác nhau tùy thuộc vào cách phiên bản Linux của bạn được đặt tên là Máy chủ Apache.
Trên hệ điều hành Debian và Mac:
apachectl -v
Trên Red Hat và EC2 Linux của Amazon sử dụng:
httpd -v
Trên các phiên bản khác của Linux, hãy thử:
apache2 -v
Bạn có thể sử dụng hai cờ khác nhau:
-v # gives you the version number
-V # gives you the compile settings including version number.
Nếu bạn muốn chạy lệnh với thư mục đầy đủ như user3786265 đã làm nhưng không biết apache của bạn nằm ở đâu, hãy sử dụng whereis
lệnh:
whereis httpd
$ /usr/sbin/apache2 -v
vì chỉ cần $ apache2 -v
trả về command not found
. Lệnh này sẽ giúp người dùng định vị đường dẫn đến apache, nếu được yêu cầu:ps -ef | grep apache
apache2 -v
cũng hoạt động trên Debian (ít nhất là Debian 8 (Jessie) trên Raspberry Pi).
Tôi đang sử dụng Red Hat Linux và lệnh sau hoạt động:
httpd -V
Hãy thử nó với 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....
Tôi nghĩ bạn phải chắc chắn loại cài đặt nào bạn có nhị phân hoặc nguồn. Để kiểm tra những gói nhị phân nào được cài đặt: với quyền root thực thi lệnh sau:
dpkg -l |grep apache2
kết quả sẽ giống như:
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)
Để tìm phiên bản, bạn có thể chạy:
apache2ctl -V |grep -i "Server version"
kết quả sẽ giống như: Phiên bản máy chủ: Apache / 2.4.10 (Debian)
Bạn cũng có thể sử dụng trình quản lý gói trực tiếp:
dpkg -l | grep apache
Điều này không tập trung vào chỉ số phiên bản , nhưng nó sẽ giúp tìm kiếm rộng hơn, cung cấp cho bạn thông tin hữu ích khác, như các phiên bản mô-đun.
dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-
hay dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
.
Một cách khác để kiểm tra phiên bản cài đặt (bao gồm cả Apache) trên hệ thống dựa trên Debian, chúng ta có thể sử dụng:
apt-cache policy <package_name>
ví dụ cho Apache
apt-cache policy apache2
Nó sẽ hiển thị một cái gì đó như (nhìn vào Installed
dòng):
$ 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
Đối với tôi, điều này hoạt động trên Debian 6 (Bóp):
Linux www809 2.6.26-2-xen-686 # 1 SMP Thứ tư ngày 21 tháng 9 09:56:47 UTC 2011 i686 GNU / Linux
Tôi đã phải đi đúng con đường:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: dòng 71: ulimit: tệp mở: không thể sửa đổi giới hạn: Thao tác không được phép
Phiên bản máy chủ: Apache / 2.2.21 (Unix)
Máy chủ được xây dựng: 17/12/2011 19:57:53
Tôi đã thử chạy lệnh "httpd -V" và "apachectl -V", nhưng tôi không thể thực thi và nhận được lỗi:
-ksh: php: không tìm thấy [Không có tệp hoặc thư mục như vậy]
Sau đó, tôi đã thử một cách khác. Tôi đã đi đến thư mục Apache trên máy chủ của mình và sau đó thử thực hiện lệnh:
./apachectl -v
Điều này làm việc cho tôi và trả lại đầu ra:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
Tôi hi vọng cái này giúp được.
Bạn có thể sử dụng apachectl -V
hoặc apachectl -v
. Cả hai sẽ trả về thông tin phiên bản 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"
Bạn có thể giống như sử dụng apache2 -V
hoặc apache2 -v
. Có vẻ dễ nhớ hơn!
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"
Đối với tôi apachectl -V
đã không làm việc, nhưng apachectl fullstatus
đã cho tôi phiên bản của tôi.
apachectl fullstatus
đã không làm việc cho tôi. Tôi đã nhận được /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspbian trên Raspberry Pi). Tuy nhiên, apachectl -V
đã làm việc.
Một số bản cài đặt của Apache là fubar (nghĩ rằng bao bì của Oracle, OHS) và không hiểu cờ -V, cũng không thể được gọi trực tiếp mà không gặp phải lỗi thư viện.
Cách dễ nhất là sử dụng strings
lệnh (một phần binutils
) trên nhị phân httpd và grep cho một chuỗi có thể giống với một phiên bản. Ví dụ: giả sử httpd
nhị phân của bạn nằm trong thư mục /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
Hầu hết các nhị phân (không phải tất cả) đều chứa phiên bản của chúng (ít nhất là phiên bản chính của chúng) dưới dạng chuỗi tĩnh. Đây là cách để tôi có được các phiên bản (hoặc để chứng thực những gì thông điệp trợ giúp của nhị phân phù hợp với thực tế trên thực tế là gì.)
httpd
bắt buộc phải có trong thư mục hiện tại để làm việc này?
Hoặc, ít trực tiếp hơn:
nmap -A localhost -p 80
-bash: nmap: command not found
Chắc chắn gõ / usr / sbin / apache2 -v vào shell là cách tốt nhất và nhanh nhất, bằng cách này là một tùy chọn khác, chỉ trong trường hợp có PHP trong máy chủ của bạn và bạn quan tâm đến việc thu thập phiên bản Apache (và nhiều thêm infos) trong các bước lập trình nhanh chóng.
Chỉ cần tạo một tệp info.php trong thư mục gốc web Apache của bạn (hoặc bất cứ thứ gì bạn thích) và viết chúng vào trong đó:
<?php
phpinfo();
?>
Bây giờ, hãy truy cập yoursite.com/info.php (hoặc localhost / info.php cho các máy cục bộ).
Bạn sẽ thấy phiên bản Apache của bạn trong phần Biến PHP , đây là một ví dụ:
Trang kết xuất ví dụ phpinfo ()
Ngoài ra, xin lưu ý rằng các bước này rõ ràng áp dụng cho bất kỳ máy chủ web nào có tích hợp PHP, vì vậy nó không giới hạn ở Apache và một khi được tạo, trang đó có thể hữu ích trong khi phát triển (chỉ cần đừng quên xóa nó trên môi trường sản xuất !!)