如何快速设置php mysql网站?

时间:2009-06-12 11:51:34

标签: php mysql scripting

我正在寻找快速设置基本网站的方法。

我有一个基本站点,可以使用databasem,templates,css,js等。 不,我希望能够快速建立一个网站。当我启动脚本时发生的事情是:

  1. 询问一些变数
  2. 提交:
  3. 在webroot中创建一个文件夹
  4. 将标准网站复制到该地图
  5. 基于默认数据库
  6. 创建数据库
  7. 将新网站添加到我的vhost文件
  8. 重启apache
  9. 将新网站添加到我的主机文件
  10. 在浏览器中启动基本网站。
  11. 创建此脚本的最佳方法是什么?我怎么能做到这一点?

6 个答案:

答案 0 :(得分:2)

这是一个关于你所说的完整(未经测试)的黑客行为。如果你对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

还要注意倾斜的引号`&lt; - 它们启动一个shell命令。第一行称为shebang-line(是的,就像那个80年代的老乐队,或者它是什么......)并且告诉shell使用什么来执行文件。 (Env是一个实用程序,有点找到其他程序,在本例中是php。如果你想在php有不同安装位置的系统中运行脚本,那就很好。)

另请注意,此脚本只是伪代码 - 它不起作用!在修改它之前不要运行它!

答案 1 :(得分:1)

这是您必须在服务器上执行的操作,因此您可以使用您喜欢的任何语言。它只是复制文件,将文本附加到文件并执行一些shell命令。

答案 2 :(得分:1)

嗯,这取决于您使用的操作系统,如果您使用Linux,您可以创建简单的脚本来执行此操作,它基本上应该包含一系列命令来设置它。

#!/bin/sh
mkdir /var/www/sitename
cp -au /var/www/skeleton/* /var/www/newfolder
etcetera.

然后,您可以通过使用某些参数

从命令行运行脚本来启动脚本

./initiatesite.sh newsite.com databasename addwhateverparameteryouwant here。

有关将参数传递给shell脚本的更多信息:http://osr600doc.sco.com/en/SHL_automate/_Passing_to_shell_script.html

答案 3 :(得分:0)

您可以编写一个基本上完成所有这些操作的shell脚本。

所以我猜你会有一个由php处理的web前端,它需要一些参数,并让你的php脚本在你的服务器上调用一个shell脚本(通过系统调用)来设置你的数据库,复制文件,附加一些行到vhost配置等

如果这不是供您自己使用,而是为了客户,我会特别注意确保所有输入都没有污染并且首先是安全的。

答案 4 :(得分:0)

除非你以root身份运行PHP(不好主意),否则你不能在PHP中这样做。

想想你想要具体做什么以及如何做到这一点。在浏览器中启动站点是一个特定于用户的桌面操作,重新启动服务器是一个根操作,就像所有复制/编辑/移动的东西一样。

也许正确的安装程序会更适合您要完成的任务。听起来您正在使用Windows - 您是否只想为Windows提供安装?对于Linux,您需要一个shell脚本,例如。

答案 5 :(得分:0)

编写此代码的最佳方法是作为命令行脚本,如果需要,可以使用PHP编写。使用$argv变量获取命令行变量的数组。确保此PHP文件不可通过Web访问。

另外,我会使用SVN导出到新网站的文件夹。这将确保您拥有最新的代码,并且它是一个干净的副本。