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.