Debian makinede hangi Apache sürümünün yüklü olduğunu nasıl kontrol edebilirim?
Bunu yapmak için bir komut var mı?
Debian makinede hangi Apache sürümünün yüklü olduğunu nasıl kontrol edebilirim?
Bunu yapmak için bir komut var mı?
Yanıtlar:
Apachectl -V'yi deneyin:
$ 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 ...
İşinize yaramazsa, komutu ile çalıştırın sudo
.
apache2ctl -V
kök ayrıcalıkları olmadan çalışmaz (... ve sürümü yazdırmaz). Oysa Apache 2.2 ile Ubuntu 12 üzerinde çalışıyor. Zor.
Debian 7.1
Bu Debian'ım için çalışıyor:
$ /usr/sbin/apache2 -v
Daha yeni Debian veya Ubuntu dağıtımları için apache2ctl -v veya apache2 -v kullanmalısınız .
apache:/etc/apache2# apache2ctl -v
Server version: Apache/2.2.16 (Debian)
Server built: May 12 2011 11:58:18
veya daha fazla bilgi almak için apache2 -V kullanabilirsiniz .
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....
Komut, Linux sürümünüzün Apache Sunucusunu nasıl adlandırdığına bağlı olarak değişir.
Debian ve Mac OS'de:
apachectl -v
Red Hat ve Amazon'un EC2 Linux kullanımında:
httpd -v
Linux'un diğer sürümlerinde şunları deneyin:
apache2 -v
İki farklı bayrak kullanabilirsiniz:
-v # gives you the version number
-V # gives you the compile settings including version number.
Komutu user3786265 gibi tam dizinle çalıştırmak, ancak apache'nizin nerede olduğunu bilmiyorsanız, şu whereis
komutu kullanın:
whereis httpd
$ /usr/sbin/apache2 -v
çünkü sadece $ apache2 -v
geri dönüyor command not found
. Bu komut, kullanıcıların gerekirse apache yolunu bulmalarına yardımcı olur:ps -ef | grep apache
apache2 -v
Debian üzerinde de çalışır ( Raspberry Pi'de en azından Debian 8 (Jessie)).
Red Hat Linux kullanıyorum ve aşağıdaki komut çalışıyor:
httpd -V
Sudo ile deneyin
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....
İkili veya kaynak ne tür bir kurulumunuz olduğundan emin olmanız gerektiğini düşünüyorum. Hangi ikili paketlerin kurulu olduğunu kontrol etmek için: root haklarıyla aşağıdaki komutu yürütün:
dpkg -l |grep apache2
sonuç şöyle olmalıdır:
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)
Sürümü bulmak için çalıştırabilirsiniz:
apache2ctl -V |grep -i "Server version"
sonuç şöyle olmalıdır: Sunucu sürümü: Apache / 2.4.10 (Debian)
Paket yöneticisini doğrudan da kullanabilirsiniz:
dpkg -l | grep apache
Bu sadece sürüm numarasına odaklanmakla kalmaz , aynı zamanda modül sürümleri gibi diğer faydalı bilgileri verecek daha geniş bir arama yapacaktır.
dpkg -l apache2 | grep ^ii | awk '{print $3}' | cut -f1 -d-
ya da düşünün dpkg -l "apache2*" | grep ^ii | awk '{print $3}' | cut -f1 -d- | head -n 1
.
Debian tabanlı bir sistemde yüklü bir paketi (Apache dahil) kontrol etmek için başka bir yol, şunları kullanabiliriz:
apt-cache policy <package_name>
örneğin Apache için
apt-cache policy apache2
gibi bir şey gösterecektir ( Installed
hatta bakın):
$ 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
Benim için bu Debian 6 (Squeeze) üzerinde çalışıyor :
Linux www809 2.6.26-2-xen-686 # 1 SMP Çar 21 Eyl 09:56:47 UTC 2011 i686 GNU / Linux
Doğru yola gitmek zorunda kaldım:
/usr/local/apache/bin** $ **./apachectl -v
./apachectl: line 71: ulimit: açık dosyalar: değiştirilemez: Operasyona izin verilmiyor
Sunucu sürümü: Apache / 2.2.21 (Unix)
Sunucu oluşturuldu: 17 Ara 2011 19:57:53
"Httpd -V" ve "apachectl -V" komutunu çalıştırmayı denedim, ancak yürütemedim ve hatayı alıyordum:
-ksh: php: bulunamadı [Böyle bir dosya veya dizin yok]
Sonra başka bir yol denedim. Sunucumdaki Apache dizinine gittim ve komutu çalıştırmayı denedim:
./apachectl -v
Bu benim için çalıştı ve çıktıyı verdi:
Server version: Apache/2.2.20 (Unix)
Server built: Sep 6 2012 17:22:16
Umarım bu yardımcı olur.
Sen kullanabilir apachectl -V
ya apachectl -v
. Her ikisi de Apache sürüm bilgilerini döndürür!
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"
Daha çok apache2 -V
veya gibi olabilirsiniz apache2 -v
. Hatırlamak daha kolay görünüyor!
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"
Benim apachectl -V
için işe yaramadı, ama apachectl fullstatus
bana versiyonumu verdi.
apachectl fullstatus
benim için çalışmadı. /usr/sbin/apachectl: 101: /usr/sbin/apachectl: www-browser: not found 'www-browser -dump http://localhost:80/server-status' failed.
(Debian 8 - Raspberry Pi'de Raspbian) aldım . Ancak apachectl -V
işe yaradı.
Apache'nin bazı kurulumları fubar (Oracle'ın paketlemesini düşünün, OHS) ve -V bayrağını anlamıyor veya eksik kütüphane hatalarına girmeden doğrudan çağrılamıyor.
En kolay yol, httpd ikili dosyasındaki strings
komutu (parçası binutils
) ve grep'i bir versiyona benzeyebilecek bir dize için kullanmaktır. Örneğin, httpd
ikili dosyanızın dizin altında olduğu varsayılarak /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
Çoğu ikili dosya (tümü değil) sürümlerini (en azından ana sürümlerini) statik dizeler olarak içerir. Bu, sürümleri almanın (veya bir ikili yardım mesajının yerdeki gerçekle gerçekten eşleştiğini doğrulamak için) benim yolum.
httpd
işe bunun için geçerli dizinde olması gerekli?
Veya daha az doğrudan:
nmap -A localhost -p 80
-bash: nmap: command not found
Elbette / usr / sbin / apache2 -v yazarak kabuğa yazmak, en iyi ve en hızlı yoldur, bu arada başka bir seçenek de, sunucunuzda PHP de olması ve Apache sürümünü (ve daha fazlasını toplamak istiyorsanız) daha fazla bilgi) hızlı programlı adımlarla.
Apache web kök klasörünüzde (veya istediğinizi) bir info.php dosyası oluşturun ve bunları içine yazın:
<?php
phpinfo();
?>
Şimdi siteniz.com/info.php (veya yerel makineler için localhost / info.php ) adresine gidin .
Apache sürümünüzü PHP Değişkenleri bölümünde göreceksiniz , işte size bir örnek:
phpinfo () örnek döküm sayfası
Ayrıca, bu adımların açıkça PHP entegrasyonu olan herhangi bir web sunucusu için geçerli olduğunu unutmayın , bu yüzden Apache ile sınırlı değildir ve bir kez bu sayfa geliştirilirken kullanışlı olabilir (sadece üretim ortamlarında kaldırmayı unutmayın !!)