如何快速建立一个php mysql站点?

如何快速建立一个php mysql站点?,php,mysql,scripting,Php,Mysql,Scripting,我正在寻找快速建立一个基本网站的方法 我有一个基本的网站,它使用数据库、模板、css、js等等。 不,我希望能够快速建立一个网站。启动脚本时应该发生的是: 询问一些变量 提交时: 在webroot中创建文件夹 将标准站点复制到该地图 基于默认数据库创建数据库 将新站点添加到我的vhost文件 重新启动apache 将新站点添加到我的主机文件 在浏览器中启动de basic站点 创建此脚本的最佳方法是什么?我如何才能做到这一点?这是您必须在服务器上执行的操作,以便您可以使用您喜欢的任何语言。这只是

我正在寻找快速建立一个基本网站的方法

我有一个基本的网站,它使用数据库、模板、css、js等等。 不,我希望能够快速建立一个网站。启动脚本时应该发生的是:

  • 询问一些变量
  • 提交时:
  • 在webroot中创建文件夹
  • 将标准站点复制到该地图
  • 基于默认数据库创建数据库
  • 将新站点添加到我的vhost文件
  • 重新启动apache
  • 将新站点添加到我的主机文件
  • 在浏览器中启动de basic站点

  • 创建此脚本的最佳方法是什么?我如何才能做到这一点?

    这是您必须在服务器上执行的操作,以便您可以使用您喜欢的任何语言。这只是关于复制文件、向文件添加文本和执行一些shell命令。

    这是您必须在服务器上执行的操作,以便您可以使用您喜欢的任何语言。它只是关于复制文件、向文件添加文本和执行一些shell命令。

    您可以编写一个shell脚本,基本上完成所有这些

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


    如果这不是供您自己使用,而是供客户端使用,我会格外小心,首先确保所有输入都未被污染且安全。

    您可以编写一个shell脚本,基本上完成所有这一切

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


    如果这不是供您自己使用,而是供客户端使用,我会格外小心,首先确保所有输入都未被污染且安全。

    除非以root用户身份运行PHP,否则无法在PHP中执行此操作(坏主意)

    想想你想具体做什么,以及你将如何做。在浏览器中启动站点是用户特定的桌面操作,重新启动服务器是根操作,所有复制/编辑/移动操作也是根操作


    也许一个合适的安装程序更适合你想要实现的目标。听起来您正在使用Windows--您是否只想为Windows提供安装?例如,对于Linux,您需要一个shell脚本。

    除非您以root用户身份运行PHP,否则无法在PHP中执行此操作(坏主意)

    想想你想具体做什么,以及你将如何做。在浏览器中启动站点是用户特定的桌面操作,重新启动服务器是根操作,所有复制/编辑/移动操作也是根操作


    也许一个合适的安装程序更适合你想要实现的目标。听起来您正在使用Windows--您是否只想为Windows提供安装?例如,对于Linux,您需要一个shell脚本。

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

    #!/bin/sh
    mkdir /var/www/sitename
    cp -au /var/www/skeleton/* /var/www/newfolder
    etcetera.
    
    然后,您可以使用一些参数从命令行运行脚本来启动脚本

    ./initiatesite.sh newsite.com数据库名称在此处添加所需的任何参数


    有关向shell脚本传递参数的更多信息:

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

    #!/bin/sh
    mkdir /var/www/sitename
    cp -au /var/www/skeleton/* /var/www/newfolder
    etcetera.
    
    然后,您可以使用一些参数从命令行运行脚本来启动脚本

    ./initiatesite.sh newsite.com数据库名称在此处添加所需的任何参数


    有关向shell脚本传递参数的更多信息:

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


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

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

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

    这里有一个完整的(未经测试的)黑客程序,它可以解决你所说的问题。如果您熟悉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...
    
    ?>
    
    请记住,要在当前文件夹中运行脚本,需要添加
    /
    。像

    ./scriptname sitename
    
    还请注意倾斜的引号“,这里有一个完整的(未经测试的)黑客程序,它可以对您所说的内容进行修改。如果您熟悉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...
    
    ?>
    
    请记住,要在当前文件夹中运行脚本,需要添加
    /
    。像

    ./scriptname sitename
    

    还请注意倾斜的引号`我也可以从windows机器到远程linux机器执行此操作吗?当然-您可以在linux机器上运行脚本。(例如,使用Putty通过SSH连接)我也可以从windows机器到远程linux机器执行此操作吗?当然可以-您可以在linux机器上运行脚本。(例如,使用Putty通过SSH连接)如果服务器配置正确(您可以访问所需的所有目录并拥有写入它们的权限),是的,但如果服务器配置正确,则速度会很慢(除非您远程启动一些shell脚本,该脚本将在服务器上本地执行任务)(您可以访问所需的所有目录,并具有写入权限),是的,但速度会很慢(除非您远程启动一些shell脚本,该脚本将在服务器上本地执行此任务)