GNU/Linux >> Linux の 問題 >  >> Linux

PHP exec - 有効か無効かを確認する

これにより、実行を試みる前に、exec が使用可能で有効になっていることが確認されます。 exec() を実行し、関数が存在しないか無効になっている場合、警告が生成されます。サーバーの設定によっては、ブラウザにレンダリングされる可能性があり、ほぼ常にログ ファイルに行が書き込まれる =パフォーマンス ヒット。

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

実際にやりたいことは、 ini_get('disable_functions') を使用することです 利用できるかどうかを確認するには:

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

ここでstackoverflowで回答:「exec」が無効になっているかどうかを確認してください。これは、実際にはPHP Manページから来ているようです: http://php.net/manual/en/function.exec.php#97187

パス

上記が true (exec() を使用できます) を返しても、PHP がまだスクリプトをトリガーできない場合は、そのスクリプトのパスに問題がある可能性が高く、次のようにしてテストします:

print exec('which bash');

そして試してみてください

print exec('which ogr2ogr');

これにより、関数が実際に機能するかどうかがチェックされます (許可、権利など):

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

Linux
  1. Linuxで有効/ロードされているApacheモジュールを確認する方法

  2. コマンドラインからPHPでロードまたは有効化されたモジュールを一覧表示する方法

  3. PHPスクリプトが実行されているかどうかを確認するためのcronジョブ、実行されていない場合は実行しますか?

  1. PHP情報を確認する方法

  2. NUMA 構成が有効か無効かを確認する方法は?

  3. どのApacheモジュールが有効/インストールされているかを確認する方法は?

  1. LinuxにインストールされているPHPおよびApacheモジュールを確認するにはどうすればよいですか?

  2. PHPエラー

  3. Linux で KPTI が有効になっているかどうかを確認するにはどうすればよいですか?