Ini akan memeriksa apakah exec tersedia dan diaktifkan SEBELUM mencoba menjalankannya. Jika Anda menjalankan exec() dan fungsinya tidak ada atau dinonaktifkan, peringatan akan dibuat. Bergantung pada pengaturan server yang mungkin merender ke browser dan akan hampir selalu menulis baris ke file log =kinerja tercapai.
// Exec function exists.
// Exec is not disabled.
// Safe Mode is not on.
$exec_enabled =
function_exists('exec') &&
!in_array('exec', array_map('trim', explode(', ', ini_get('disable_functions')))) &&
strtolower(ini_get('safe_mode')) != 1
;
if($exec_enabled) { exec('blah'); }
if(function_exists('exec')) {
echo "exec is enabled";
}
ini_get('disable_functions')
Yang sebenarnya ingin Anda lakukan adalah menggunakan ini_get('disable_functions')
untuk mengetahui apakah itu tersedia untuk Anda:
<?php
function exec_enabled() {
$disabled = explode(',', ini_get('disable_functions'));
return !in_array('exec', $disabled);
}
?>
Dijawab di stackoverflow di sini:Periksa apakah "exec" dinonaktifkan, Yang sepertinya berasal dari halaman PHP Man:http://php.net/manual/en/function.exec.php#97187
Jalur
Jika hasil di atas benar (Anda dapat menggunakan exec()), tetapi PHP masih tidak dapat memicu skrip, ada kemungkinan besar Anda memiliki masalah jalur untuk skrip tersebut, uji ini dengan melakukan:
print exec('which bash');
lalu coba
print exec('which ogr2ogr');
Ini akan memeriksa apakah fungsi benar-benar berfungsi (izin, hak, dll):
if(@exec('echo EXEC') == 'EXEC'){
echo 'exec works';
}