3

PHP を使用して、Apache サーバーでレガシー スクリプトを実行しています。レガシースクリプトはデバッグデータをSTDERRに書き込み、デバッグ設定に応じてそれをブラックホールまたはSTDOUTにリダイレクトしています。

PHP は次のようになります。

exec('perl -e "print 10; print STDERR 20" 2>&1', $output);

それはXPで確実に機能していました。現在windows7を実行している新しいハードウェアを入手しましたが、このコードに戻ると壊れています。ゼロ出力。return-code 255. 理由がわかりません。

もう一度やり直すことができた唯一の方法は、リダイレクトを削除することでした。ああ、リダイレクトはまだターミナル ボックスで完全に機能します。

ここで、apache-error-log (すべての STDERR 出力がデフォルトで出力される場所) からデバッグ データを取得する必要がありますが、これは不便ですが問題ではありません。

リダイレクトが突然機能しなくなった理由を理解したいだけです(そして、同じ問題に遭遇している他の人を助けるかもしれません)。Apacheは同じです。実際、古いボックスからXAMPPディレクトリをコピーしただけです。バグ?システム制限?OS ポリシーで禁止されていますか?

4

2 に答える 2