public function actionStep2() { $model = new Step2(); $form = new Form('install.Step2', $model); $this->performAjaxValidation($model); if ($form->submitted() && $model->validate()) { $configs = CMap::mergeArray(Yii::app()->user->getState('install_configs'), $model->getConfigs()); Yii::app()->user->setState('install_configs', $configs); $step1 = Step1::loadFromSession(); Yii::app()->setComponent('db', $step1->createDbConnection()); //install modules Yii::app()->setModules($model->modules); //$step1->deleteDisableModules(); //migrate Yii::app()->getModule('users'); Yii::app()->executor->migrate('up --module=main'); foreach (Yii::app()->getModules() as $id => $data) { if ($id == 'main') { continue; } Yii::app()->getModule($id); if (is_dir(Yii::getPathOfAlias($id . '.migrations'))) { $response = Yii::app()->executor->migrate('up --module=' . $id); if (stripos($response, 'successfully') === false) { echo $response; die; } } } //create admin user $user = new User(); list($user->name) = explode('@', $model->admin_email); $user->name = ucfirst($user->name); $user->email = $model->admin_email; $user->password = UserIdentity::crypt($model->admin_pass); $user->status = User::STATUS_ACTIVE; $user->save(false); //set admin $auth = Yii::app()->authManager; $auth->clearAll(); $auth->createRole('Admin'); $auth->assign('Admin', $user->id); //commands collect Yii::app()->executor->addCommandsFromModules(Yii::app()->getModules()); //run install method foreach (Yii::app()->getModules() as $id => $conf) { @mkdir(Yii::getPathOfAlias('webroot.upload.' . $id), 0755, true); Yii::app()->getModule($id)->install(); } $model->saveInSession(); //install base modules $this->redirect('/install.php?r=/install/install/step3'); } $this->render('step2', array('form' => $form)); }