GNU/Linux >> LINUX-Kenntnisse >  >> Linux

PHP-Exec – überprüfen Sie, ob aktiviert oder deaktiviert

Dadurch wird überprüft, ob exec verfügbar und aktiviert ist, BEVOR Sie versuchen, es auszuführen. Wenn Sie exec() ausführen und die Funktion nicht existiert oder deaktiviert ist, wird eine Warnung generiert. Abhängig von den Servereinstellungen, die möglicherweise an den Browser übertragen werden und fast immer eine Zeile in eine Protokolldatei schreiben =Leistungseinbußen.

// 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')

Was Sie eigentlich tun möchten, ist ini_get('disable_functions') zu verwenden um herauszufinden, ob es für Sie verfügbar ist:

<?php
function exec_enabled() {
    $disabled = explode(',', ini_get('disable_functions'));
    return !in_array('exec', $disabled);
}
?>

Beantwortet auf Stackoverflow hier:Überprüfen Sie, ob "exec" deaktiviert ist, was tatsächlich von der PHP-Manpage zu stammen scheint:http://php.net/manual/en/function.exec.php#97187

Pfad

Wenn das obige wahr zurückgibt (Sie können exec() verwenden), aber PHP das Skript immer noch nicht auslösen kann, besteht eine gute Chance, dass Sie ein Pfadproblem für dieses Skript haben, testen Sie dies, indem Sie Folgendes tun:

print exec('which bash');

und versuchen Sie es dann

print exec('which ogr2ogr');

Dadurch wird überprüft, ob die Funktion tatsächlich funktioniert (Berechtigungen, Rechte usw.):

if(@exec('echo EXEC') == 'EXEC'){
    echo 'exec works';
}

Linux
  1. So listen Sie in PHP geladene oder aktivierte Module über die Befehlszeile auf

  2. So überprüfen Sie Ihre PHP-Informationen

  3. Wie finde ich heraus, ob die NUMA-Konfiguration aktiviert oder deaktiviert ist?

  4. So listen Sie alle Module auf und prüfen, ob sie in CentOS/RHEL 8 aktiviert oder deaktiviert sind

  5. So überprüfen Sie, ob SELinux aktiviert oder deaktiviert ist

So überprüfen Sie die PHP-Version

So überprüfen Sie die PHP-Version auf Ubuntu

Aktualisierung von PHP 5.6 auf 7

So überprüfen Sie die PHP-Version unter Linux

Wie überprüfe ich, welche Apache-Module aktiviert/installiert sind?

Wie überprüfe ich, ob KPTI unter Linux aktiviert ist?