Bu yazdıgım kod localhostta sıkıntısız şekilde çalısıyor güncelleme sunucusuna baglanıyor dosyayı indiriyor ve çıkarıyor. Hosting'e yüklediğimde dosyayı indiriyor fakat zip'i çıkarma işlemini yapmıyor $extractpath = FCPATH; kısımını $extractpath = FCPATH.'/deneme'; gibi değiştirirsem o zaman dosyayı deneme ısımlı klasöre çıkarabiliyor fakat benim dosyaları fcpath'e çıkarmam gerekli localde bi sıkıntı cıkarmazken hosting'e yükleyince böyle bir sorun oluyor yardımcı olabilirmisiniz.
Not: Dosya ve klasörlerin okuma/yazma izinleri 777

$data = $this->check_update();
if ($data['update'] == 'ok') {
set_time_limit(0);
$output_filename = $data['filename'];
$host = $data['url'];

$this->update_version($data['version']);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
if (!is_dir('updates')) {
mkdir('./updates', 0777, TRUE);
}
$fp = fopen(FCPATH . '/updates/' . $output_filename, 'w');
fwrite($fp, $result);
fclose($fp);

$zip = new ZipArchive;
$res = $zip->open("updates/" . $output_filename);
if ($res == TRUE) {
$extractpath = FCPATH;
$zip->extractTo($extractpath);
$zip->close();
$this->update_version($data['version']);
sweetAlert('Başarılı', 'Yazılım güncellemesi başarıyla tamamlandı. FTP anadizininde updates klasörünü silebilirsiniz.', 'success');
} else {
sweetAlert('Hata', 'Güncelleme işlemi başarısız oldu.', 'error');
}