如何快速建立一个php mysql站点?
我正在寻找快速建立一个基本网站的方法 我有一个基本的网站,它使用数据库、模板、css、js等等。 不,我希望能够快速建立一个网站。启动脚本时应该发生的是:如何快速建立一个php mysql站点?,php,mysql,scripting,Php,Mysql,Scripting,我正在寻找快速建立一个基本网站的方法 我有一个基本的网站,它使用数据库、模板、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脚本,该脚本将在服务器上本地执行此任务)