Вот полный (не проверенный) взлом, который делает то, что вы сказали. Если вам удобно в php, тогда используйте это. Псевдокрипт:
#!/usr/bin/env php
<?php
echo "Site setup v0.0\n";
if($argc != 2){
echo "Usage:\n script sitename\n";
}
//set vars
$sitename = $argv[1];
$src_folder = "/path/to/some/folder";
$template_db ="template_site";
//copy files
`mkdir $sitename`;
`cp -R $src_folder $sitename`;
//copy template db
$dblink = mysql_connect("localhost");
if(!mysql_query($dblink, "CREATE DATABASE site_$sitename; USE site_$sitename;"))exit(-1);
$r = mysql_query($dblink, "SHOW TABLES FROM $template_db");
while($row = mysql_fetch_array($r)){
$table = $row[0];
mysql_query($dblink, "CREATE TABLE $table AS SELECT $template_db.$table");
}
//conf and restart apache
$f = fopen("httpd.conf","a");//open for append
fwrite("<VirtualHost $sitename> bla bla </VirtualHost>");
fclose($f);
`sudo apachectl -k restart`; //you'll be asked for a password here
//open in browser
`open http://$sitename/`; //on mac anyway...
?>
Сделать файл исполняемым с
chmod +x filename
Помните, что для запуска скриптов в текущей папке необходимо добавить ./
. Как
./scriptname sitename
Также обратите внимание на наклонные кавычки `<- они запускают команду оболочки. Первая строка называется шебанг-линией (да, как та старая полоса 80-х годов или что это было ..) и указывает оболочке, что использовать для выполнения файла. (Env - это служебная программа, которая как бы находит другие программы, в данном случае php. Хорошо, если вы хотите запустить скрипт в системах, где php имеет разные места установки.) </p>
Также обратите внимание, что этот скрипт является просто псевдокодом - он не работает! Не запускайте его до изменения!