ここには、あなたが言ったことを行う完全な(テストされていない)ハックがあります。あなたが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です。)
また、このスクリプトは、それは動作しません!それを修正する前に実行しないでください!
リモートでもできますか? – sanders
サーバが正しく設定されていれば(必要なディレクトリにアクセスして書き込み権限を持つことができます)、しかし遅くなります(サーバー上でローカルにジョブを実行するシェルスクリプトをリモートで起動しない限り) – Keeper