Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tworzenie subdomeny z poziomu PHP
Forum PHP.pl > Forum > PHP
Xayan
Cześć.

Krótka piłka: jak utworzyć subdomenę z poziomu PHP?

Na góglach szukałem, ale zbyt wiele nie znalazłem. Najlepiej bym prosił o jakiś konkretny przykład bądź funkcję.
tvister
Ciekawy pomysł :-)
Jeżeli masz uprawnienia to : funkcja exec lub system i lecisz poleceniami powłoki.
Xayan
No tak, ale niestety na Windowsie tego nie zrobię. Jeszcze nie kupiłem serwera z Linuksem, więc nie mogę także tego przetestować. Jakiś inny sposób?
tvister
Zakładam że posiadasz uprawnienia więc:
  1. <?php
  2. system("CMD /C X.bat");
  3. ?>

gdzie X.bat to skrypt batch(powłoka z łindołs) który robi wszystko co w nim
zaimplementujesz.
Xayan
No dobrze, dobrze. Ale co ma się w tym pliku znaleźć? Nie mam zielonego pojęcia, może chociaż jakaś podpowiedź?
mlawnik
Skrypt ten powinien zakładać subdomenę ;-)

Na batchu się nie znam, więc nie pomogę.
Raz w życiu napisałem w nim prosty program:

  1. @echo off
  2. set /p run=Co chcesz przeczytac?
  3. if exist %run%.txt goto znalazlem
  4. if not exist %run%.txt goto nieznalazlem
  5. :znalazlem
  6. cls
  7. echo Na pewno?
  8. More %run%.txt
  9. cls
  10. echo Zakonczyc?
  11. goto dalej
  12. :nieznalazlem
  13. echo Plik nie został znaleziony
  14. goto start
  15. :dalej


http://www.chebucto.ns.ca/~ak621/DOS/BatBasic.html

Ale to niekoniecznie musi być batch, może tez być np. Python

http://www.python.org/
tvister
Podpowiedz:
google.pl :-p
a tak poważnie :
po pierwsze powinieneś znać zasadę zakładania subdomeny pod twoim serwerem (zakładam że pewnie jest do paczka wamp-a lub krasnal-a z apachem).
Wystarczy dopisać kilka linijek do jakiegoś pliku tektowego w katalogu apache (zapewne katalog apache/site-enabled).
drugie primo to za pomocą poleceń powłoki batch zbudować taki plik i zrestartować apache.
mat-bi
tak sowją drogą, jak będziesz miał linuxa, możesz uzyć moich skryptów:

  1. #!/bin/sh
  2.  
  3. if [ `whoami` = "root" ]
  4. then
  5. echo "127.0.0.1 $2" >> /etc/hosts;
  6. echo "server {
  7. listen 80;
  8.  
  9. root /home/mat-bi/public_html/$1;
  10. index index.html index.htm index.php;
  11.  
  12. server_name $2;
  13. location ~ \.php$ {
  14. fastcgi_pass 127.0.0.1:9000;
  15. fastcgi_index index.php;
  16. include fastcgi_params;
  17. }}" >> /etc/nginx/sites-available/default;
  18. /home/mat-bi/up.sh restart;
  19.  
  20.  
  21. else
  22. echo "Nie masz uprawnień!"
  23. fi
  24.  
  25.  


up.sh
  1. #!/bin/sh
  2.  
  3. if [ "$(whoami)" = "root" ]
  4. then
  5. if [ -n "$1" ]
  6. then
  7. akcja="$1"
  8. else
  9. echo "Wybierz akcję:"
  10. read akcja
  11. fi
  12.  
  13. if [ "$akcja" = "start" ]
  14. then
  15. /etc/init.d/nginx start
  16. /etc/init.d/postgresql start
  17. elif [ "$akcja" = "install" ]
  18. then
  19. apt-get install nginx php5 postgresql
  20. elif [ "$akcja" = "stop" ]
  21. then
  22. /etc/init.d/nginx stop
  23. /etc/init.d/postgresql stop
  24. elif [ "$akcja" = "restart" ]
  25. then
  26. /etc/init.d/nginx restart
  27. /etc/init.d/postgresql restart
  28. else
  29. echo "Złe polecenie. Możliwe polecenia:
  30. start - włącza usługi
  31. stop - wyłącza usługi
  32. restart - restartuje usługi
  33. install - instaluje usługi "
  34. fi
  35. else
  36. echo "Nie masz uprawnień. Uruchom skrypt z prawami roota"
  37. fi

wink.gif

Aha, wywołujesz

  1. sudo ./skrypt.sh nazwavhosta foldervhosta


Tfu, tfu! Vhost niekoniecznie = subdomena biggrin.gif
melkorm
Albo użyć dnsmasq i mod_alias i wtedy życie staje się łatwiejsze, 1 vhost i nic więcej, nowy projekt - odpowiedni nazwa katalogu i tyle, mogę napisać jakiś tutek jakby ktoś byłby zainteresowany wink.gif
by_ikar
na windowsa jest pakiet uniform server i tam jest administracja serwerem zrobiona w php. Można dodawać swoje virtual hosty, i jest plik który między innymi nadpisuje plik hosts oraz konfiguracje apache po czym restartuje apache. Przejrzyj sobie ten plik, na windowsie mniej więcej tak to by wyglądało, w jakiejś skromnej paczce wamp.

No i jak ktoś wyżej napisał, nie musi być to php, php może np tylko wywoływać dany skrypt..
kosmowariat
Można dać

  1. ServerAlias *.domena.pl


+ w skrypcie php bootstrap funkcjonalności na podstawie $_SERVER['HTTP_HOST']
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.