Hangi PHP'nin kullanıldığını nasıl belirleyebilirim?


10

Hangi PHP'nin kullanıldığını nasıl belirleyebilirim?

Örneğin, varsa /usr/local/bin/phpve usr/local/bin/php5, nasıl biri benim PHP komut dosyaları tarafından kullanılmakta olduğu biliyoruz?

Yanıtlar:


11

PHP CLI kullanıyorsanız, o zaman bu kabuk komutlarını kullanmayı deneyin (burada linux kullandığınızı varsayıyorum)

which php - will locate the php executable (this should be the default php used by you)
whereis php - The first path displayed will be the location of the php executable
echo $PATH - will print a list of paths separated by ":" where the system looks for commands

PHP bir Apache modülü olarak kullanıyorsanız phpinfo () kullanılan php sürümünü ve php yapılandırma dosyalarını değil, php yapılandırma dosyalarını söyleyecektir . Eğer php yürütülebilir 2 sürümleri varsa o zaman bu size yardımcı olacaktır. Onlar aynı sürüm ise o zaman gerçekten kimin kim olduğu önemli olmayacak :)

Eğer php sürümünü bulmak istiyorsanız, php -v, CLI ve kurulu Zend modüllerinde php sürümünü yazdıracaktır.

Dahil edilen ini dosyalarını bulmak istiyorsanız php --ini, php modülü tarafından yüklenen ini dosyalarının listesini görüntüler (bu CLI sürümü için geçerlidir).


Tüm girişler için teşekkürler. Görünüşe göre, whichkomut ihtiyacım olan şey.
Randell

@Randell - Kullanma which; kullanın command -v. Ayrıca bkz . Bash betiğinden program olup olmadığını kontrol etme .

7

Basit bir komut dosyası ekleyin

<?php phpinfo(); ?>

Bu phpkullanıcının girişinden koşmayacak mı ; ve mutlaka Apache tarafından kullanılan php değil mi?

5

Web Sunucusu ile Kullandığınızı Varsaymak:
Bir komut dosyasına aşağıdaki işlevi koyabilirsiniz:

<?php 
phpinfo(); 
?>

Bu işe yaramazsa, bu işlev php.ini dosyasında devre dışı bırakılmış olabilir. Bu genellikle güvenlik için yapılır. Bu durumda, php.ini dosyasında şöyle bir satır olacaktır:

disable_functions = phpinfo

Bu durumda, geçici olarak

disable_functions =

Shell Scripts için php kullanıyorsanız:

  1. Üstte 'shebang line' olmalı,

    #! / usr / local / bin / php -q

  2. Birinin diğerine smybolik bir bağlantı olmadığından emin misiniz? yapmak

    ls -l / usr / local / bin / php

  3. Yapma ;-)


5

Ayrıca komut satırından:

$ php -v

Suhosin-Patch 0.9.6.2 (cli) ile PHP 5.2.6-3ubuntu4 (yapılı: 31 Mar 2009 02:11:31) Telif hakkı (c) 1997-2008 PHP Group Zend Engine v2.2.0, Telif Hakkı (c) 1998- 2008 Zend Teknolojileri


Bu phpkullanıcının girişinden koşmayacak mı ; ve mutlaka Apache tarafından kullanılan php değil mi?

1
<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();
?>

0

Apache web sunucunuz tarafından çağrılan web scriptlerinizden bahsediyorsanız ve PHP bir Apache modülü olarak yapılandırılmışsa, cevap HİÇBİRİ olur.

Sorunuzda bahsettiğiniz konumlar,

 #!/usr/local/bin/php

php-komut satırı betiğinizin en üstünde

farklı isimlere sahip oldukları için ayrı ayrı bahsettiğiniz tercümanları arayabilirsiniz.

# php

/ usr / local / bin / php'yi arar ve

# php5

/ usr / local / bin / php5

Apache modülü üzerinden PHP kullanıyorsanız bunlardan hiçbiri kullanılmaz. Eğer php CGI-sürümünü kullanıyorsanız phpinfo (); çıktı.



0
<?php echo shell_exec('which php'); ?>

Bu, kabuk erişiminiz olmasa bile çalışır. ;-)


Bunun, sorduğu kişinin aradığını yaptığını sanmıyorum. Bu yalnızca kabuk ortamının PATH aramasında ne kullanacağını gösterir. Bu bir komut dosyasının yürütüldüğü PHP ile aynı olmayabilir.
Theuni
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.