2013-10-02 23 views
7

Jestem szalony na ten temat, ale chcę zrobić to sam w php.Jak utworzyć zarządzanie domeną localhost dla okien w php?

Mam zainstalowane w moim systemie następujące elementy.

WAMP Server 2.2, która obejmuje następujące

  • Apache Web Server w wersji 2.2.222
  • MySQL Server wersja 5.5.24
  • Wersja PHP 5.3.13
  • OS w wersji 64-bitowej systemu Windows 8

Lokalizacja pliku hostów:

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

Położenie WAMP Server:

C:\wamp 

Położenie Apache Web Server:

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

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

Lokalizacja serwera MySQL:

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

Położenie PHP:

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

Mam prosty przykład utworzyć vhosta w localhost np Chcę utworzyć prostą domenę www.mylocalsite.com na portu

Do tego mam następujące kroki:

(1) moduły Enagle Apache

  • rewrite_module
  • vhosts_alias_module

(2) Otwórz plik httpd.conf w celu umożliwienia vhosta ustawień

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

wirtualne hosty

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

(3) Dodaj wpis vhosta w httpd-vhostów.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) Dodaj wpis w pliku hosts Otwórz plik w Notatniku z Admin Permission C: \ Windows \ System32 \ drivers \ etc \ hosts Dodaj następujący wiersz na końcu z plik i zapisz go.

127.0.0.1 www.mylocalsite.com 

(5) Uruchom ponownie (Z WAMP) Apache Web Server i uruchomić w przeglądarcehttp://www.mylocalsite.com/ zadziała.

Teraz moje pytanie brzmi: w jaki sposób mogę zrobić powyższe kroki w charakterze dynamicznym użyciu PHP/JSP lub innego języka.

Załóżmy, że utworzę jeden formularz w HTML z następującymi polami, a po przesłaniu utworzy nowy wpis MySQL dla tej domeny.

EDIT:

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> 

po kliknięciu na przycisk zostanie ona automatycznie utworzyć wpis domeny w gospodarzy plik vhostów wejścia w httpd-vhosts.conf plików.

I, po ponownym uruchomieniu serwera Apache uruchomi automatycznie automatycznie utworzoną domenę lub poddomenę.

Czy każdy wie, w jaki sposób mogę ustanowić następujące rzeczy w dowolnym języku tylko dla systemu lokalnego?

+1

To dobra inicjacja do rozwoju op jak środowisko hostingowe w lokalnej maszynie. – NullPointer

+0

Tak, jest również przydatny dla użytkowników, którzy nie wiedzą, jak tworzyć w środowisku lokalnym. –

Odpowiedz

2

Nie używaj formularza internetowego. Można zobaczyć moje demo z pliku wsadowego:

(1) Tworzenie szablonu vhost template.txt

<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> 

(2) Tworzenie 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 Uruchom polecenie add_vhost.bat jako administrator (aby utworzyć plik HOSTS).

+0

Wow, co jest niesamowite w odpowiedzi gven przez ciebie. Spróbuję i zaimplementuję. Ta rzecz doda nowy entey w obu plikach. Jeśli chcę zaktualizować dowolny wpis vhost lub wyłączyć/usunąć to samo zostanie zastosowany lub powinienem zmienić w taki sposób, aby znaleźć hosta w pliku i zastąpić istniejący wpis vhost. –

+0

Jak myślę, potrzebujemy uprawnień administratora, aby uzyskać dostęp do/zapisu w pliku hosts. więc, wszelkie rozwiązanie tego. –

+0

Myślę, że muszę dać użytkownikowi uprawnienia do interfejsu administratora, w którym użytkownik może ustawić uprawnienia dostępu do zasobów systemowych i administratora Odpowiednio uruchomić plik pliku wsadowego/pliku SH w systemie Windows/Linux. –