Bagaimana cara menentukan PHP mana yang sedang digunakan?
Misalnya, jika ada /usr/local/bin/php
dan usr/local/bin/php5
, bagaimana saya tahu yang mana yang digunakan oleh skrip PHP saya?
Jika Anda menggunakan PHP CLI, maka coba gunakan perintah shell ini (saya berasumsi bahwa Anda menggunakan linux di sini)
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
Jika Anda menggunakan PHP sebagai modul Apache maka phpinfo () akan memberi tahu Anda versi php yang digunakan, dan file konfigurasi php, BUKAN jalur php . Jika Anda memiliki 2 versi php yang dapat dieksekusi maka ini akan membantu Anda. Jika mereka adalah versi yang sama maka tidak masalah yang mana :)
Jika Anda ingin mengetahui versi php, maka php -v akan mencetak versi php di CLI dan setiap modul Zend yang diinstal.
Jika Anda ingin mengetahui file ini termasuk maka php --ini akan menampilkan daftar file ini dimuat oleh modul php (ini berlaku untuk versi CLI).
which
perintah itulah yang saya butuhkan.which
; gunakancommand -v
saja. Lihat juga Periksa apakah ada program dari skrip Bash .Cukup tambahkan skrip sederhana
sumber
php
dari login pengguna; dan belum tentu php yang digunakan oleh Apache?Dengan asumsi Anda Menggunakan melalui Web Server:
Anda dapat menempatkan fungsi berikut dalam skrip:
Jika ini tidak berhasil, bisa jadi karena fungsi ini dinonaktifkan di php.ini. Ini sering dilakukan untuk keamanan. Jika demikian, Anda akan memiliki baris di php.ini seperti:
Jika ini masalahnya, ubah sementara untuk
Jika Anda Menggunakan php untuk Shell Script:
Seharusnya ada 'garis shebang' di atas, semacamnya
#! / usr / local / bin / php -q
Apakah Anda yakin yang satu tautan smybolic ke yang lain? melakukan
ls -l / usr / local / bin / php
Jangan ;-)
sumber
Juga dari baris perintah:
sumber
php
dari login pengguna; dan belum tentu php yang digunakan oleh Apache?sumber
Jika Anda berbicara tentang skrip web Anda yang dipanggil oleh server web Apache Anda dan PHP dikonfigurasi sebagai modul Apache maka jawabannya adalah TIDAK ADA.
Lokasi yang Anda sebutkan dalam pertanyaan Anda adalah penerjemah skrip baris perintah yang akan dipanggil dengan notasi shebang
di bagian atas skrip baris perintah-php Anda
Anda dapat memanggil juru bahasa yang Anda sebutkan secara terpisah, karena mereka memiliki nama yang berbeda
akan memanggil / usr / local / bin / php dan
akan memanggil / usr / local / bin / php5
Tidak satu pun dari mereka yang digunakan jika Anda menggunakan PHP melalui modul Apache. Jika Anda menggunakan CGI-Version dari php, ia akan muncul di phpinfo (); keluaran.
sumber
sumber
Ini berfungsi bahkan jika Anda tidak memiliki akses shell. ;-)
sumber