2013-10-02 5 views
7

私はこのことについて狂っていますが、私はそれをPHP自体で作りたいと思っています。phpでwindows用のlocalhostドメイン管理を作成するには?

私は自分のシステムに以下をインストールしました。

  • Apache Webサーバーバージョン2.2.222
  • MySQLサーバのバージョン5.5.24
  • PHPバージョン5.3.13
  • OSのバージョンのWindows 8 64 - を次のものが含まれ

    WAMPサーバ2.2

ホストファイルの場所: WAMPサーバの

C:\Windows\System32\Drivers\etc\hosts 

場所:Apache Webサーバの

C:\wamp 

場所:MySQLサーバの

- C:\wamp\bin\apache\apache2.2.22 

- C:\wamp\bin\apache\apache2.2.22\conf\extra\httpd-vhosts.conf 

場所:

C:\wamp\bin\mysql\mysql5.5.24 

PHPの場所:

C:\wamp\bin\php\php5.3.13 

私はlocalhost 例えばでバーチャルホストを作成する簡単な例を持っています

(1)Enagle Apacheモジュール

  • rewrite_module:私は、私は、次の手順を持っているためポート

    に簡単なドメインwww.mylocalsite.comを作成したいです

  • vhosts_alias_module
バーチャルホストを有効にする

(2)オープンhttpd.confファイルは

C:\wamp\bin\apache\apache2.2.22\conf\httpd.conf 

仮想ホスト

Include conf/extra/httpd-vhosts.conf // Remove the # before Include and save file 

は(3)のhttpd-バーチャルホストでのバーチャルホストのエントリを追加設定します。confファイル

<VirtualHost *:90> 
    DocumentRoot "C:/mylocalsite.com/" 
    ServerName www.mylocalsite.com 

    # This should be omitted in the production environment 
    SetEnv APPLICATION_ENV development 

    <Directory "C:/mylocalsite.com/"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 

    ErrorLog "C:/mylocalsite.com/logs/error.log" // Logs folder should be exists 
    CustomLog "C:/mylocalsite.com/logs/access.log" common 

</VirtualHost> 

(4)Admin権限Cとメモ帳で ファイルを開くhostsファイルにエントリを追加します:\ WINDOWS \ System32に\ドライバを\ ETC \ホスト の最後に次の行を追加します。保存してください。

127.0.0.1 www.mylocalsite.com 

(5)(WAMPから)Apache Webサーバーを再起動し、ブラウザでhttp://www.mylocalsite.com/を実行していきます。

今、私の質問はどのように私はPHP/JSPまたは他の言語を使用して動的な自然の中で上記の手順を行うことができます。

次のフィールドを持つHTMLで1つのフォームを作成し、送信すると、そのドメインの新しいMySQLエントリが作成されるとします。

編集:私はボタンをクリックしたときに自動的のhttpd-vhosts.confファイルにホストにファイル、バーチャルホストエントリをドメインエントリを作成します

Domain Type: select option or Radio Options (Root/Sub-Domain) 
Sub-Domain Name (Optional): Text field 
Domain Name: Text field 
Project Path: text field 
Log Folder Path: text field 
Tmp Folder Path: text field 
Database Type: text field (mysql/pgsql) 
<Submit> 

Apacheサーバーを再起動すると、自動的に作成されたドメインまたはサブドメインが自動的に実行されます。

どのように私はローカルシステムのための任意の言語で以下のことを確立することができます知っている?

+1

これは、ローカルマシンのホスティング環境に似ています。 – NullPointer

+0

はい、ローカルenvirenmentで作成する方法を知らないユーザーにとっても便利です。 –

答えて

2

ウェブフォームを使用しないでください。あなたは、バッチファイルを使用して、私のデモを見ることができます:

(1)

<VirtualHost *:90> 
DocumentRoot "_ROOT_" 
ServerName _DOMAIN_ 

# This should be omitted in the production environment 
SetEnv APPLICATION_ENV development 

<Directory "_ROOT_"> 
    Options Indexes MultiViews FollowSymLinks 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 

ErrorLog "_ROOT_/logs/error.log"// Logs folder should be exists 
CustomLog "_ROOT_/logs/access.log" common 

</VirtualHost> 

template.txtバーチャルホストのテンプレートを作成します(2)add_vhost.bat

@echo off 
set /p domain=Domain (www.mylocalsite2.com): 
set lineHost=127.0.0.1 %domain% 

REM Create the domain entry in hosts file 
echo %lineHost% >> C:\Windows\System32\drivers\etc\hosts 

set /p folder=Folder (C:/mylocalsite2.com/): 
REM Create vhost entry in httpd-vhosts.conf file 
setlocal enabledelayedexpansion 
for /f "tokens=*" %%i in (template.txt) do ( 
    set str=%%i 
    set str=!str:_ROOT_=%folder%! 
    set str=!str:_DOMAIN_=%domain%! 
    echo !str! >> C:\wamp\bin\apache\apache2.2.22\conf\extra\httpd-vhosts.conf 
) 

を作成します(3 )add_vhost.batを管理者として実行する(ホストファイルを作成する)

+0

うわー、それはあなたの答えgvenの素晴らしいことです。私は試して実行します。このことは、両方のファイルに新しいenteyを追加します。 vhostエントリを更新したい場合や、同じものを無効/削除する場合は、ファイル内のホストを見つけて既存のvhostエントリを置き換える方法で変更する必要があります。 –

+0

ホストファイルへのアクセス/書き込みには管理者権限が必要だと思います。そう、そのためのあらゆる解決策。 –

+0

私は、ユーザーがシステムリソースと管理者にアクセスするためのアクセス許可を設定できる管理者インターフェイスにユーザー権限を与える必要があると思います。Windows/Linuxでバッチファイル/ SHファイルを実行します。 –

関連する問題