こんにちは。
あまりphpに詳しくないため、見当違いの事を申し上げていたら申し訳ありません。
環境
・php7.3.13
・WindowsServer2012R2
・IIS10.0
概要
・とあるフォルダを「lzh」形式で圧縮したい
・ZipArchiveでは「lzh」の作成が出来ないようなので、代替で圧縮ソフト「Lhaplus」を利用
・「shell_exec」を使って「Lhaplus.exe」をキックしたい
フォルダ階層
C: └inetpub └wwwroot ├Lhaplus (exe一式が入っており、IUSERでフルコン権限付与済み) └hoge (IUSERでフルコン権限付与済み) ├output │└202001(圧縮元フォルダ) │ └csv、Excelファイルなど・・・ └fuga └202001(圧縮先フォルダ) └202001.lzh(正常に完了すれば出力されるlzhファイル)
試したこと
php
1 $cmd = "C:\inetpub\wwwroot\Lhaplus\Lhaplus.exe /c:lzh /o:C:\inetpub\wwwroot\hoge\fuga\202001 C:\inetpub\wwwroot\hoge\output\202001"; 2 $return_ver = shell_exec($cmd); 3 echo '実行結果:'.$return_ver; 4 exit();
「C:\inetpub\wwwroot\hoge\fuga\202001」フォルダをlzh化して
「C:\inetpub\wwwroot\hoge\output\202001」の直下に配置したいです。
尚、対象のフォルダは既に作成済みです。
また、コマンド内の「/c:」は「指定の拡張子で圧縮するオプション」で、
「/o:」は「圧縮したファイルの出力先を指定するオプション」となります。
サーバー上のコマンドラインで同じコマンドを実行すると、すぐに処理が正常に完了するのですが、
ブラウザ経由でコードを実行すると、処理が完了せずタイムアウトエラーとなってしまいます。
何か記述方法が間違っているようでしたら、ご指摘頂けますと嬉しいです。
回答2件
あなたの回答
tips
プレビュー