###前提・実現したいこと
phpで「特定ディレクトリ下のファイル全てを再帰的にzip化し、win/mac共に正常解凍・ソフト起動できるzipを生成する」処理を実装しています。
phpからexecでzipコマンドを実行してファイル群の入ったディレクトリを圧縮していますが、その中の各OS用の実行ファイルが、windowsでは起動できますが、macでは起動できないため調べたところ、圧縮する度に、毎回zipの容量が異なっていることがわかりました。
これは、linuxのZIP圧縮の正常動作なのでしょうか?
(winで圧縮・解凍すると正常動作します)
zip圧縮さえ正しくできれば、問題が解決しそうなのですが・・・。
###発生している問題・エラーメッセージ
・zipコマンドでzip化すると、毎回zipの容量が異なる。解凍後の中身の一部ファイルの容量も異なる。
・zip化前のファイル群のハッシュ値と、zip化後に解凍したファイル群のハッシュ値は一部異なっていました(ファイル破損?)
・Mac(OS X EI)では解凍後にソフトを実行すると「アプリケーション XX を開けません。」とエラーが出ます。
・Winでは動作します。
・各OS共に、zip化前のファイル群は正常動作します。
###試したこと
・zipコマンドで毎回zipの容量が違う問題が解決できないため、phpのzipArchiveを使ったところ、zipが破損していてmacでは解凍さえできませんでした。(winは解凍可)
###補足情報
・容量が100メガ前後あるため、phpのmemory_limitは大きくしています。
・output_compressionをoffにしています。
・コマンドは zip -r file.zip dir です。 -rXも試しました。phpじゃなくコンソールから叩いても同じでした。
・CentOS6.8、ZIP3.0です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/08/26 05:37