public function actionDoDeploy() { $etcDir = $this->getEtcDir(); if (!is_dir($etcDir)) { throw new InvalidParamException("Non existing Nginx etcDir: {$etcDir}"); } $enabledDir = $etcDir . DIRECTORY_SEPARATOR . 'sites-enabled'; $availableDir = $etcDir . DIRECTORY_SEPARATOR . 'sites-available'; static::mkdir($enabledDir); static::mkdir($availableDir); foreach ($this->getItems() as $vhost) { $conf = $vhost->renderConf(); $name = $vhost->getDomain() . '.conf'; $file = File::plain($availableDir . DIRECTORY_SEPARATOR . $name); $file->save($conf); $file->symlink($enabledDir . DIRECTORY_SEPARATOR . $name); } $this->actionRestart(); }