ホームページ >バックエンド開発 >PHPチュートリアル >PHP で外部プログラムを実行するための system() および exec() 関数のトラブルシューティング方法

PHP で外部プログラムを実行するための system() および exec() 関数のトラブルシューティング方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-21 08:17:30474ブラウズ

How to Troubleshoot system() and exec() Functions for Running External Programs in PHP?

PHP での外部プログラムの実行: system() および exec() のトラブルシューティング

制御された PHP 環境内で外部プロセスを開始するには、 system() 関数と exec() 関数。これらの関数はサイレント プロセスを実行できますが、メモ帳などの目に見える GUI を備えたアプリケーションの表示に失敗する可能性があります。

解決策は、ログオン アカウント設定で [サービスがデスクトップと対話できるようにする] オプションを有効にすることです。 Apache サービスの。これにより、サービスを起動して GUI プログラムと対話できるようになります。

例:

<code class="php"><?php
// Spawn notepad.exe and immediately continue script execution
pclose(popen("start /B notepad.exe", "r"));

// Spawn notepad.exe and wait for application to close
system('start notepad.exe');</code>

注:

  • このソリューションは Windows XP でテストされていますが、他の Windows バージョンでは調整が必要な場合があります。
  • Apache サービスがドメイン ユーザー アカウントで実行されている場合、[サービスがデスクトップと対話できるようにする] チェックボックスにアクセスできません。この場合、サービスを 2 つのコンポーネントに分割することを検討してください。1 つはユーザー アカウント権限を持つコンポーネント、もう 1 つはデスクトップ インタラクション用です。Web サーバーなどの重要なサービスでは、これらの機能を分割するのは現実的ではありません。

以上がPHP で外部プログラムを実行するための system() および exec() 関数のトラブルシューティング方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。