4

Apache (php5.3) で実行されている php スクリプト内で tar gzip 操作を実行する必要があります。

過去に、私は使用しました:

new PharData($archivePath . '.tar');
$p = $p->convertToExecutable(Phar::TAR, Phar::GZ);
$p->startBuffering();

ただし、この場合、1GB 以上のファイルを処理する必要がある可能性があります。だから私はphp/apacheのオーバーロードが心配です。

その場合、依存しshell_execてOSに負荷をかけるのが最善ですか?

4

1 に答える 1

2

私は Marc B に同意します。私が考える主な考慮事項は次のとおりです。

デプロイメント環境... Shell を使用すると、シェル コマンドを実行できる環境につながり、tar にアクセスできます。拡張機能がインストールされていれば、Phar を使用するのは良いことです。シェルを使用すると、Windows でも動作するようにロジックを配置しない限り、Linux にも関連付けられます。

また、セキュリティの問題...脆弱性を導入することなくphpからシェルコマンドを実行することは間違いなく可能ですが、データを十分にスクラブしないと、悪意のある人々がコマンドを実行する方法が提供されます. また、誰が何を知っているかでスペースが不足すると、tar は停止しますが、Phar を使用すると、単に悪いリターン コードではなく、問題を示す適切なエラー メッセージが php から表示されるはずです。

シェルの利点の 1 つは、コマンドを非同期で実行し、stdout からストリームを取得すると、進行状況を監視できることです。

いずれにせよ、1 つが半ダース、もう 1 つが 6 つ...

于 2012-12-04T00:55:52.350 に答える