2009-06-12 8 views
0

私は基本的なサイトを素早くセットアップする方法を探しています。どのようにPHPのmysqlサイトを迅速に設定するには?

私はデータベース、テンプレート、css、jsなどで動作する基本サイトを持っています。 いいえサイトをすばやく設定したいと考えています。

  1. いくつかの変数提出の
  2. を尋ねる:
  3. 作成
  4. は、そのマップに標準サイトをコピー
  5. は、Webルートにフォルダを作成し、私はスクリプトがある起動したときに何が起こるのshoudldデフォルトのDBに基づいて、データベース
  6. は私のバーチャルホストファイルに新しいサイトを追加
  7. 再スタートのapache
  8. ホストファイルに新しいサイトを追加する
  9. ブラウザで基本サイトを開始する。

このスクリプトを作成する最適な方法は何ですか。どうすればこれを達成できますか?

答えて

1

これはサーバー上で行う必要があるため、好きな言語を使用できます。ファイルのコピー、ファイルへのテキストの追加、シェルコマンドの実行についてです。

+0

リモートでもできますか? – sanders

+0

サーバが正しく設定されていれば(必要なディレクトリにアクセスして書き込み権限を持つことができます)、しかし遅くなります(サーバー上でローカルにジョブを実行するシェルスクリプトをリモートで起動しない限り) – Keeper

0

基本的にすべてを達成するシェルスクリプトを書くことができます。

私はいくつかのパラメータを取るphpによって処理されるWebフロントエンドを持っていると思うし、あなたのデータベースをセットアップし、ファイルをコピーし、いくつかを追加するために(そのシステムコールを介して)これはあなた自身の使用のためではなく、クライアントのためではない場合、私はすべての入力が汚染されていないであることを確認するために余分な世話をし、最初の確保う設定をバーチャルホストするラインなど

0

PHPをrootで実行しない限り、これを行うことはできません(悪い考えです)。

あなたが特にやりたいとどのようにあなたがそれを行うだろうかについて考えてみてください。ユーザー固有のデスクトップアクションがブラウザでサイトをされて以降、サーバーを再起動すると、すべてのコピー/編集/移動するものであるように、rootのアクションがあります。

たぶん、適切なインストーラは、達成しようとしているものの方がより適しているだろう。あなたはWindowsで作業しているように思えます.Windowsのインストールのみを提供したいのですか? Linuxの場合は、シェルスクリプトなどが必要です。

1

まあ、それはあなたがLinuxを使用する場合は、あなたがこれを行うための簡単なスクリプトを作成することができ、使用しているOSに依存し、それはbasiclyこれをセットアップするために一連のコマンドが含まれている必要があります。

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

その後、ここにいくつかのパラメータ

./initiatesite.sh newsite.comデータベース名addwhateverparameteryouwantでコマンドラインからそれを実行してスクリプトを起動することができます。シェルスクリプトにパラメータを渡すに

さらに詳しい情報:http://osr600doc.sco.com/en/SHL_automate/_Passing_to_shell_script.html

+0

また、WindowsのマシンからリモートのLinuxマシンにこれを行うことはできますか? – sanders

+0

もちろん、Linuxマシンでスクリプトを実行するだけで済みます。 (例えば、パテを使ってSSH経由で接続する) – Sander

0

したい場合は、PHPで書くことができるコマンドラインスクリプト、のようになり、これを書くための最良の方法。変数を使用して、コマンドライン変数の配列を取得します。このPHPファイルがWebにアクセスできないことを確認してください。

また、SVNを使用して、新しいサイトのフォルダへのエクスポートを行います。これにより、最新のコードとクリーンなコピーが確実に作成されます。

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 

はまた `<傾斜引用符に注意してください - 彼らは、シェルコマンドを起動します。最初の行はシバンラインと呼ばれ(80年代の古いバンドのように、それは何だったのか)、ファイルの実行に何を使うべきかをシェルに伝えます。 (Envは、他のプログラムを見つけ出すユーティリティプログラムです。この場合は、PHPが異なるインストール場所を持つシステムでスクリプトを実行したい場合には、この例ではPHPです。)

また、このスクリプトは、それは動作しません!それを修正する前に実行しないでください!

関連する問題