Bagaimana saya bisa memeriksa versi Apache mana yang diinstal pada mesin Debian?
Apakah ada perintah untuk melakukan ini?
Bagaimana saya bisa memeriksa versi Apache mana yang diinstal pada mesin Debian?
Apakah ada perintah untuk melakukan ini?
Jawaban:
Coba 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 ...
Jika tidak berhasil untuk Anda, jalankan perintah dengan sudo
.
apache2ctl -V
tidak berfungsi tanpa hak akses root (... dan tidak mencetak versi). Sedangkan itu berfungsi di Ubuntu 12 dengan Apache 2.2. Rumit.
Debian 7.1
Ini berfungsi untuk Debian saya:
$ /usr/sbin/apache2 -v
Anda harus menggunakan apache2ctl -v atau apache2 -v untuk distribusi Debian atau Ubuntu yang lebih baru.
apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built: May 12 2011 11:58:18
atau Anda dapat menggunakan apache2 -V untuk mendapatkan informasi lebih lanjut.
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....
Perintah bervariasi tergantung pada bagaimana versi Linux Anda menamai Server Apache.
Di Debian dan Mac OS:
apachectl -v
Di Red Hat dan Amazon menggunakan EC2 Linux:
httpd -v
Di Linux lain coba:
apache2 -v
Anda dapat menggunakan dua flag berbeda:
-v # gives you the version number
-V # gives you the compile settings including version number.
Jika Anda ingin menjalankan perintah dengan direktori lengkap seperti yang dilakukan user3786265 tetapi tidak tahu di mana apache Anda berada, gunakan whereis
perintah:
whereis httpd
$ /usr/sbin/apache2 -v
karena hanya $ apache2 -v
mengembalikan command not found
. Perintah ini akan membantu pengguna menemukan path ke apache, jika diperlukan:ps -ef | grep apache
apache2 -v
juga bekerja pada Debian (setidaknya Debian 8 (Jessie) di Raspberry Pi).
Saya menggunakan Red Hat Linux dan perintah berikut berfungsi:
httpd -V
Cobalah dengan 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....
Saya pikir Anda harus yakin jenis instalasi apa yang Anda miliki biner atau sumbernya. Untuk memeriksa paket binary apa yang diinstal: dengan hak root jalankan perintah berikut:
dpkg -l |grep apache2
hasil harus berupa:
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)
Untuk menemukan versi Anda dapat menjalankan:
apache2ctl -V |grep -i "Server version"
Hasilnya harus seperti: Versi server: Apache / 2.4.10 (Debian)
Anda juga dapat menggunakan manajer paket secara langsung:
dpkg -l | grep apache
Ini tidak berfokus pada nomor versi saja , tetapi akan membuat pencarian yang lebih luas, yang akan memberi Anda informasi berguna lainnya, seperti versi modul.
dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-
atau dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
.
Cara lain untuk memeriksa paket (termasuk Apache) versi yang diinstal pada sistem berbasis Debian, kita dapat menggunakan:
apt-cache policy <package_name>
misalnya untuk Apache
apt-cache policy apache2
yang akan menampilkan sesuatu seperti (lihat Installed
baris):
$ 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
Bagi saya ini berfungsi pada Debian 6 (Pemerasan):
Linux www809 2.6.26-2-xen-686 # 1 SMP Rabu 21 September 09:56:47 UTC 2011 i686 GNU / Linux
Saya harus pergi ke jalan yang benar:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: line 71: ulimit: buka file: tidak dapat mengubah batas: Operasi tidak diizinkan
Versi server: Apache / 2.2.21 (Unix)
Server dibangun: 17 Desember 2011 19:57:53
Saya mencoba menjalankan perintah "httpd -V" dan "apachectl -V", tapi saya tidak bisa menjalankan dan mendapatkan kesalahan:
-ksh: php: tidak ditemukan [Tidak ada file atau direktori]
Kemudian saya mencoba cara lain. Saya pergi ke direktori Apache di server saya dan kemudian mencoba menjalankan perintah:
./apachectl -v
Ini bekerja untuk saya dan mengembalikan hasilnya:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
Saya harap ini membantu.
Anda bisa menggunakan apachectl -V
atau apachectl -v
. Keduanya akan mengembalikan informasi versi 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"
Anda mungkin lebih suka menggunakan apache2 -V
atau apache2 -v
. Tampaknya lebih mudah diingat!
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"
Bagi saya apachectl -V
tidak bekerja, tetapi apachectl fullstatus
memberi saya versi saya.
apachectl fullstatus
tidak bekerja untuk saya. Saya mendapat /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspbian dengan Raspberry Pi). Namun, apachectl -V
berhasil.
Beberapa instalasi Apache adalah fubar (bayangkan Oracle mengemasnya, OHS) dan tidak memahami flag -V, juga tidak dapat dipanggil secara langsung tanpa mengalami kesalahan pustaka yang hilang.
Cara termudah adalah dengan menggunakan strings
perintah (bagian dari binutils
) pada biner httpd dan grep untuk string yang mungkin menyerupai versi. Misalnya, dengan asumsi httpd
biner Anda berada di bawah direktori /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
Kebanyakan binari (tidak semua) mengandung versinya (setidaknya versi utamanya) sebagai string statis. Ini adalah cara saya untuk mendapatkan versi (atau untuk menguatkan apa pesan bantuan biner cocok dengan kenyataan di lapangan sebenarnya.)
httpd
harus berada di direktori saat ini agar ini berfungsi?
Atau, kurang langsung:
nmap -A localhost -p 80
-bash: nmap: command not found
Tentunya mengetik / usr / sbin / apache2 -v ke dalam shell adalah cara terbaik dan tercepat untuk pergi, dengan cara inilah pilihan lain, kalau-kalau ada PHP juga di server Anda dan Anda tertarik untuk mengumpulkan versi Apache (dan banyak lagi lebih banyak info) dalam langkah-langkah pemrograman cepat.
Cukup buat file info.php di folder root web Apache Anda (atau apa pun yang Anda suka) dan tulis di dalamnya:
<?php
phpinfo();
?>
Sekarang buka yoursite.com/info.php (atau localhost / info.php untuk mesin lokal).
Anda akan melihat versi Apache Anda di bagian Variabel PHP , berikut ini sebuah contoh:
phpinfo () contoh halaman dump
Juga, harap perhatikan bahwa langkah-langkah ini jelas berlaku untuk server web mana pun dengan integrasi PHP, jadi itu tidak terbatas pada Apache dan sekali dibuat halaman itu bisa berguna saat mengembangkan (jangan lupa untuk menghapusnya di lingkungan produksi !!)