if (!isset($_GET['domain'])) { http_response_code(400); die('Domain parameter required'); } $domain = trim($_GET['domain']); // Проверка безопасности if (!preg_match('/^[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]?\.[a-zA-Z]{2,}$/', $domain)) { http_response_code(400); die('Invalid domain format'); } $installerFile = '/var/www/seo-panel/deploy/' . $domain . '/install.php'; // Если файл не существует, генерируем его if (!file_exists($installerFile)) { require_once 'index.php'; try { $manager = new AutoSEOManager($config); $generator = new AutoDeployGenerator($manager); $result = $generator->generateDeploymentFiles($domain); if (!$result['success']) { http_response_code(404); die('Failed to generate installer: ' . $result['message']); } } catch (Exception $e) { http_response_code(500); die('Error generating installer: ' . $e->getMessage()); } } // Проверяем еще раз if (!file_exists($installerFile)) { http_response_code(404); die('Installer file not found'); } // Отправка файла header('Content-Type: application/x-httpd-php'); header('Content-Disposition: attachment; filename="install.php"'); header('Content-Length: ' . filesize($installerFile)); header('Cache-Control: no-cache, must-revalidate'); readfile($installerFile); exit;