GNU/Linux >> Belajar Linux >  >> Linux

PHP exec - periksa apakah diaktifkan atau dinonaktifkan

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';
}

Linux
  1. Cara Memeriksa Modul Apache mana yang Diaktifkan/Dimuat di Linux

  2. Cara Membuat Daftar Modul yang Dimuat atau Diaktifkan di PHP dari baris perintah

  3. Cron Job Untuk Memeriksa Apakah Script Php Berjalan, Jika Tidak Maka Jalankan?

  1. Cara memeriksa informasi PHP Anda

  2. Bagaimana cara memeriksa Modul PHP dan Apache yang Terinstal di Linux?

  3. Kesalahan PHP

  1. Cara membuat daftar semua modul dan memeriksa apakah mereka diaktifkan atau dinonaktifkan di CentOS/RHEL 8

  2. Cara Memeriksa apakah SELinux Diaktifkan atau Dinonaktifkan

  3. Bagaimana cara memeriksa modul apache mana yang diaktifkan/dipasang?