我正在寻找快速设置基本站点的方法。
我有一个使用数据库、模板、css、js 等的基本站点。不,我希望能够快速建立一个站点。当我启动脚本时应该发生的是:
- 要求一些变量
- 提交时:
- 在 webroot 中创建一个文件夹
- 将标准站点复制到该 map
- 根据默认数据库创建数据库
- 将新站点添加到我的虚拟主机文件
- 重启apache
- 将新站点添加到我的主机文件
- 在浏览器中启动基本站点。
创建此脚本的最佳方法是什么?我怎样才能做到这一点?
这是一个完整的(未经测试的)hack,它可以处理您所说的内容。如果您对 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
还要注意斜引号 ` <- 它们启动 shell 命令。第一行称为 shebang-line(是的,就像那个 80 年代的老乐队,或者它是什么......)并告诉 shell 使用什么来执行文件。 (Env 是一个实用程序,可以找到其他程序,在本例中为 php。如果您想在 php 具有不同安装位置的系统中运行脚本,这很好。)
另请注意,此脚本只是伪代码——它不起作用!修改之前不要运行它!
我是一名优秀的程序员,十分优秀!