PHPからWindowsコマンドラインコードを実行することは可能ですか?私のWindowsコマンドラインコードは次のとおりです。
_<?php
error_reporting(E_ALL);
try {
echo exec('C:\xampp\mysql\bin>mysqlbinlog --start-datetime="2011-04-21 10:31:44" c:\xampp\mysql\data\binlog\bin-log.000001 > c:\xampp\mysql\data\binlog\sql.txt');
} catch (Exception $e) {
echo $e->getMessage();
}
_
ここで、このコードをPHP system()
またはexec()
などを使用して実行したいと思います。
コマンドラインから手動でコマンドを実行できるが、WAMPを介して実行できない場合は、Apacheサービスを実行するユーザーよりも、コマンドとバイナリを実行するために必要な権限がありません(GUIの場合はデスクトップと対話することもできません)。関連)。
デフォルトでは、Apacheサービスはユーザーアカウントで実行されます:nt Authority\system
以下の手順に従って、カスタムユーザー(管理者権限を持つユーザー)に変更します。
ハッピーコーディング:-)
私はwampを使用していますが、唯一の解決策は次のとおりです。
コントロールパネル/管理ツール/サービスで、wampapache64、httpd、またはそのようなものを検索します。 [ログオン]タブで、[サービスがデスクトップと対話できるようにする]にチェックマークを付けます
お役に立てれば!
Exec()でコマンドを直接実行できない場合は、コマンドを使用してバッチファイルを作成し、それをWebサイトのルートに配置することができます。次に、実行するだけです。
<?php echo exec("script.bat"); ?>
C:\xampp\mysql\bin>mysqlbinlog
はコマンドではありません。
C:\xampp\mysql\bin\mysqlbinlog
という意味だと思います。
>
の\
が置き換えられていることに注意してください。
>
は、コマンドプロンプトで(目のための)区切り文字としてのみ表示されますが、出力をリダイレクトしようとしない限り、コマンドでそのように使用しないでください。 (これは、後の行で再度実行します)。したがって、最初の>
を\
に置き換えるだけで、コマンドが実行されます。