«

»

Apache, PHP i wirtualne hosty

Jakiś czas temu napisałem sobie prosty skrypt w PHP. który służy do dodawania wirtualnych hostów w Windowsie do Apacha. Podzielę się, może komuś się przyda.
Uprzedzam z góry, że jest to skrypt napisany tylko do osobistych zastosowań, więc i jego struktura jest prosta. Był pisany pod natchnieniem chwili i w kilka chwil, więc może zawierać jakieś mało eleganckie rozwiązania :)

Jak działa

Po graniu plików do katalogu ze stronami dla naszego Apacha, wywołujemy jego adres w przeglądarce (np http://localhost/add_domain/). Naszym oczom ukaże się poniższy obrazek:

Na górze podajemy katalog z plikami naszej nowej strony/aplikacji www, niżej nazwę jakiej chcemy używać w przeglądarce. I w zasadzie tyle.Klikamy „Dodaj domenę” i cieszymy się, że zamiast pisać http:://localhost/moja_strona/wersja2 możemy wpisywać http://moja_strona.
Takie rozwiązanie niesie za sobą kilka innych korzyści, ale to nie temat tego wpisu.

Oczywiście, żeby nowa domena była dostępna należy jeszcze zrestartować Apacha (ktoś wie może czy i jak da się to zrobić z poziomu PHP?).

Po prawej stronie widać listę już istniejących wirtualnych hostów, a na dole szablon jaki zostaje dodany do wpisów Apacha.

Konfiguracja

W związku, że jest to skrypt do użytku własnego nie ma żadnego panelu, który pozwalałby zmieniać ustawienia. Trzeba to zrobić w plikach skryptu.

Zacznijmy od szablonu wpisu, który zostaje dodany do plików Apacha. Szablon jest w plikutemp.txt i wygląda następująco:

<VirtualHost ##domena##>
  ServerName ##domena##
  DocumentRoot "##katalog##"
  DirectoryIndex index.php
  <Directory "##katalog##">
   AllowOverride All
   Options +Indexes
   Order allow,deny
   Allow from all
  </Directory>
</VirtualHost>

Jak łatwo się domyślić miejsca ##domena## i ##katalog## zostaną zastąpione odpowiednio przez nazwę i katalog wirtualnego hosta. Reszta zostanie wstawiona „tak jak jest”, więc można ją swobodnie dostosować do naszych potrzeb.

Pozostaje jeszcze podać skryptowi ścieżki do plików „hosts” w Windowsie i „httpd-vhosts.conf” Apacha oraz katalogu naszego serwera. Robimy to odszukując w pliku index.php następujące zmienne:

  • $hosts
  • $httpd
  • $katalogStartowy

To już koniec

Nie będę opisywał dokładnie jak działa skrypt, bo jest on na tyle prosty, że chyba każdy obyty trochę z PHP zrozumie. Podaję tylko link do gotowego skryptu:http://przyklady.blog.abryser.pl/add_domain.zip

Podziel się na:
  • Drukuj
  • Facebook
  • Wykop
  • Google Bookmarks
  • Blogger.com
  • Blip
  • Digg
  • Dodaj do ulubionych
  • Gadu-Gadu Live
  • Grono.net
  • LinkedIn
  • Live
  • MySpace
  • Mój biznes
  • PDF
  • Poleć
  • RSS
  • Twitter
  • Śledzik

2 Komentarze

  1. Tomasz

    Warto zauważyć, że powyższy artykuł działa ze starą wersją serwera apache. Chodzi przede wszystkim o linijki Order allow, deny. Aby dostosować konfigurację do dzisiejszych realiów (czyt. apache 2.4) polecam instrukcje upgade https://httpd.apache.org/docs/2.4/upgrading.html

  2. selly

    Super artykuł :). Pomógł mi bardzo.
    Pozdrawiam.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć tych znaczników i atrybutów HTMLa: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>