私は、スクリプトが Linux で実行されるプロジェクトで作業しています。C++ で記述された多くのモジュールがあります。これらのモジュールを PHP から呼び出す必要があります。
私の問題は次のとおりです。
- 私のモジュールは、ソフトウェア パッケージ内のモジュールの 1 つです。
- 私たちのソフトウェアには、ユーザー入力を取得してデータベースに保存し、必要に応じて C++ エンジンを呼び出す PHP レイヤーがあります。
- すべてのモジュールが実行されており、基本モジュールによって設定された環境変数を使用しています。
- C++ エンジンへのユーザー入力を取得するための PHP のレイヤーが 1 つあります。
- PHP からアプリケーション (abc.out) を呼び出す必要があり、データベースがいっぱいになります。
問題は、アプリケーションが機能する前に、1 つの新しい環境変数を設定する必要があることです。
getenv()
パスを追加して再度設定することで、古い環境変数を取得しています。putenv()
新しい環境変数を設定するために使用しました。
環境変数を設定した後system()
、PHP からそのアプリケーションを呼び出すために使用していますが、動作しています。
この環境変数の変更が、実行中の他のモジュールに影響を与えるかどうかは疑問です。
1 つのことは、system()
複数の操作に使用する場合、環境変数を設定し、同じ呼び出しからアプリケーションを呼び出すことができるということですsystem()
。ここで私の疑問は、これが実行中の他のアプリケーションにも影響するのか、それとも で呼び出される特定のアプリケーションだけに影響するのかということsystem()
です。
それはsystem()
、プログラムごとに新しいセッションを作成することです。
ありがとう