問題タブ [proc-open]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1436 参照

php - PID によるプロセス リソースの取得

Web SSH コンソールを作成したいのですが、2 つの問題が見つかりました。

私がしたいこと。まずstart.php、次のコードを含むファイルを実行します。

次に、ファイルcommand.php内に作成されたプロセスでコマンドを実行しstart.php、そこから結果を取得するファイルを実行します。

cmd過去に作成したプロセス ( ) にアクセスし、コマンドを送信して結果を取得したいだけです。

実行ごとに新しいプロセスを作成できるのに、なぜこれが問題なのcommand.phpですか? 新しいプロセスは新しいセッションであるため、過去command.phpの実行で mysql にログインすると、次の実行で再度 mysql にログインする必要があります。新しいプロセスはログに記録されたことを覚えていないためです。

Windows での例。

  1. cmdPHP で新しいプロセス ( ) を作成します。現在のディレクトリはC:\WebServ\です。

ここに画像の説明を入力

  1. コマンドを書きます。cd /現在のディレクトリはC:\.

ここに画像の説明を入力

これは単なる例です。ディレクトリを変更したくないだけです。これは私にとっては問題ではありません。

mysql問題は、1 つのプロセスを作成し、次の PHP ファイルの実行でそれにアクセスする方法です。たとえば、セッションを記憶したい場合は?

  1. 機能ごとにプロセスを作成できますproc_open
  2. でPIDを取得できますがget_process_status、現在のPHPファイルが実行される前に作成されたプロセスリソースを取得するにはどうすればよいですか?

そして次の質問ですが、過去に作成したプロセスにアクセスできる場合、作成したプロセスに新しいコマンドを書き込む方法を教えてください。

PHP拡張機能を使用したくありません。ただし、この場合にこれが必要な場合は、それぞれの回答が役に立ちます。

他の PHP 実行で作成されたプロセスにアクセスできない場合はwhile(1)、PHP 実行の開始時に作成されたプロセスを制御するために使用したいのですが、この場合は必要ないことを願っています。 次に、作成されたプロセスに新しいコマンドを書き込む方法を誰かが知っていることを願っていcmdます。


私の質問の解決策に問題がある場合は、cmd.exeによって開かれたプロセスにコマンドを送信するshell_exec方法と、各コマンドの応答を受信する方法を教えてくれる回答を受け入れます。

0 投票する
1 に答える
874 参照

php - proc_openを使用したPHPバックグラウンドプロセス

でプロセスを開きたい

そのステータスを確認する機能はまだあります (つまり、実行中ですか?) 可能ですか?

使おうとすると

そして、

プロセスは実行されていますが、falseを返します...

ありがとう

0 投票する
1 に答える
537 参照

php - PHP proc_open - プロセス ハンドルをファイルに保存して取得する

次のコードを使用して、proc_open でプロセスを開き、ハンドルとパイプをファイルに保存します。

次に、このファイル ハンドルをファイルから取得する必要があります。次のコードを使用しました。

しかし、ファイルから取得した後に $processHandle と $pipes の var_dump を出力すると、リソースまたはプロセスではなく整数が取得されますが、なぜですか??

もちろん、この時点でパイプを閉じようとすると、エラー、リソースが必要、整数が指定されます。

どうすればこれを機能させることができますか? (注:これは私が探している解決策です)

しかし、別の方法として、プロセスの pid を取得し、この pid を使用してプロセスを停止または強制終了したり、他の処理を行ったりすることもできますが、パイプについてはどうでしょうか。プロセスから/へエラーを読み書きまたは保存するにはどうすればよいですか?

ありがとうございました

0 投票する
1 に答える
1178 参照

symfony - Symfony2 PDF生成

私は PDF を生成する必要があります。私は SpreadPdfGeneratorBundle を使用しています。問題は、このバンドルが私の webHosting "ex2" によって無効にされている "proc_open" 機能を使用していることです。PDF 生成はロケールでうまく機能します。コードは次のとおりです。

エラーのメッセージは次のとおりです。

警告: proc_open() はセキュリティ上の理由から無効になっています (500 内部サーバー エラー)

ご協力ありがとうございました。

0 投票する
1 に答える
208 参照

php - proc_open を使用して一度だけ開いたファイルから複数の結果を取得するにはどうすればよいですか?

非常に大きなデータ ファイル内から値を返す exec() を使用してコマンドを実行しましたが、何百万回も実行する必要があります。ファイルがループで毎回開かれるのを避けるために、proc_open効率のためにファイルポインタが一度作成されるベースのソリューションに移行したいのですが、これを行う方法がわかりません。

これは、おそらく各反復でファイルを開く必要があるため、機能しますexecが遅いバージョンです。

ベースのコードでの私の試みproc_openは次のとおりです。

これは最初の値を正しく取得しますが、その後の反復ごとにエラーを生成します。

0 投票する
1 に答える
693 参照

php - IIS で exec と proc_open が異なるユーザーで実行されているのはなぜですか?

Windows Server 2012 R2 および IIS 8.5 でサイトを実行していますが、問題が発生しました。

  • 実行するexec('whoami')と、 が返されますnt authority\iusr
  • を実行するproc_open('whoami', $desc, $pipes)と、結果はiis apppool\mysiteです。

なぜこうなった?