由於Azure網站在託管在IIS上的Windows VM上運行,「zip」不是Windows內置命令,所以我們無法在PHP中執行它。
利用PHP內置的ZipArchive
級收購,這是正確的,我們並不需要在Azure上安裝它,我想補充一些提示的@Rick雷尼的想法:
1,當我們添加了一個Webjob,作業腳本文件將在D:\home\site\wwwroot\App_Data\jobs
被上傳並separated
到continuous
並引發如子文件夾。
2,由於IIS使用FastCGI
來處理這些PHP腳本,所以在這裏不會定義$_SERVER
變量。所以我們可以使用絕對的文件目錄。
這裏是我的測試代碼片段:
$zip = new ZipArchive();
$filename = "D:/home/site/wwwroot/test112.zip";
if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}
$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFile("D:/home/site/wwwroot/.user.ini");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
這奏效了,不知道爲什麼以前的維護者並沒有在第一時間使用ZipArchive()UTIL! – Paul
在我看來,你的項目是在Linux env上運行的,所以以前的維護者沒有考慮跨平臺的解決方案。 –