in pgo/cases/wordpress/TrainingCaseHandler.php [48:107]
protected function setupDist() : void
{
$cmd_path_arg = "--path=" . $this->base;
if (!is_dir($this->base)) {
echo "Setting up " . $this->getName() . " in '{$this->base}'\n";
/* XXX Use host PHP for this. */
$php = new PHP\CLI($this->conf);
$php->exec($this->getToolFn() . " core download --force $cmd_path_arg");
unset($php);
}
$http_port = $this->getHttpPort();
$http_host = $this->getHttpHost();
$db_port = $this->getDbPort();
$db_host = $this->getDbHost();
$db_user = $this->getDbUser();
$db_pass = $this->getDbPass();
$vars = array(
$this->conf->buildTplVarName($this->getName(), "docroot") => str_replace("\\", "/", $this->base),
);
$tpl_fn = $this->conf->getCasesTplDir($this->getName()) . DIRECTORY_SEPARATOR . "nginx.partial.conf";
$this->nginx->addServer($tpl_fn, $vars);
$php = new PHP\CLI($this->conf);
$this->maria->up();
$this->nginx->up();
$this->maria->query("DROP DATABASE IF EXISTS " . $this->getName());
$this->maria->query("CREATE DATABASE " . $this->getName());
$env = array(
"PATH" => $this->conf->getSrvDir(strtolower($this->maria->getName())) . DIRECTORY_SEPARATOR . "bin",
);
$cmd = $this->getToolFn() . " core config --force --dbname=" . $this->getName() . " --dbuser=$db_user --dbpass=$db_pass --dbhost=$db_host:$db_port $cmd_path_arg";
$php->exec($cmd, NULL, $env);
$site_adm = trim(shell_exec("pwgen -1 -s 8"));
$this->conf->setSectionItem($this->getName(), "site_admin_user", $site_adm);
$site_pw = trim(shell_exec("pwgen -1 -s 8"));
$this->conf->setSectionItem($this->getName(), "site_admin_pass", $site_pw);
//save admin user and pass to config
//$cmd = $this->getToolFn() . " core install --url=$http_host:$http_port --title=hello --admin_user=$site_adm_user --admin_password=$site_adm_pw --admin_email=a@bc.de --skip-email --path=" . $this->base;
$cmd = $this->getToolFn() . " core install --url=$http_host:$http_port --title=hello --admin_user=$site_adm --admin_password=$site_pw --admin_email=ostc@test.abc --skip-email $cmd_path_arg";
$php->exec($cmd, NULL, $env);
$cmd = $this->getToolFn() . " plugin install wordpress-importer --activate --allow-root $cmd_path_arg";
$php->exec($cmd, NULL, $env);
$cmd = $this->getToolFn() . " import " . $this->conf->getToolSDir() . DIRECTORY_SEPARATOR . "wptest/wptest.xml --authors=create --allow-root $cmd_path_arg";
$php->exec($cmd, NULL, $env);
$this->nginx->down(true);
$this->maria->down(true);
}