Esto verificará que exec esté disponible y habilitado ANTES de intentar ejecutarlo. Si ejecuta exec() y la función no existe o está deshabilitada, se generará una advertencia. Dependiendo de la configuración del servidor que puede mostrarse en el navegador y casi siempre escribirá una línea en un archivo de registro =impacto en el rendimiento.
// 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('desactivar_funciones')
Lo que realmente quieres hacer es usar ini_get('disable_functions')
para saber si está disponible para usted:
<?php
function exec_enabled() {
$disabled = explode(',', ini_get('disable_functions'));
return !in_array('exec', $disabled);
}
?>
Respondido en stackoverflow aquí:verifique si "exec" está deshabilitado, que en realidad parece provenir de la página PHP Man:http://php.net/manual/en/function.exec.php#97187
Ruta
Si lo anterior es verdadero (puede usar exec()), pero PHP aún no puede activar el script, es muy probable que tenga un problema de ruta para ese script, pruebe esto haciendo:
print exec('which bash');
y luego intente
print exec('which ogr2ogr');
Esto verificará si la función realmente funciona (permisos, derechos, etc.):
if(@exec('echo EXEC') == 'EXEC'){
echo 'exec works';
}