Brzydkie rozwiązanie
W poprzednim rozdziale, utworzyłeś katalog w którym trzymasz projekt. Jeśli utworzyłeś go gdzieś w katalogu domowym na twoim serwerze WWW, możesz już otworzyć projekt za pomocą przeglądarki internetowej.
Oczywiście, nie wymagało to żadnej konfiguracji i jest to bardzo szybkie do zrobienia,
ale spróbuj np. otworzyć plik config/databases.yml
w przeglądarce, aby zrozumieć
jak groźne konsekwencje ma takie leniwe działanie. Jeżeli któryś z Twoich użytkowników
pracował kiedyś z symfony, będzie miał dostęp do wielu newralgicznych plików.
Nigdy, ale to nigdy nie konfiguruj tak serwera produkcyjnego i przeczytaj następny dział, aby poznać jak poprawnie skonfigurować swój serwer WWW.
Bezpieczne rozwiązanie
Dobrą praktyką jest umieszczenie w katalogu domowy tylko tych plików, które są
potrzebne do otworzenia strony www, takie jak style, JavaSkrypty, czy obrazki.
Domyślnie, zachęcamy do trzymania tych plików w katalogu web/
, znajdującego się
w katalogu symfony.
Jeśli spojrzysz do tego katalogu, znajdziesz tam kilka podkatalogów do korzystania
na stronie (css/
i images/
) oraz dwa pliki kontrolerów dostępu zewnętrznego (frontend).
Kontrolerami są pliki PHP, które jako jedyne powinny się znajdować w głównym katalogu.
Wszystkie pozostałe pliki PHP powinny być niedostępne z przeglądarki, co stanowi dobre
rozwiązanie od strony bezpieczeństwa.
Konfiguracja serwera WWW
Nadszedł czas do zmiany konfiguracji Apacha, aby nasz nowy projekt był dostępny dla użytkowników w Internecie.
Wyszukaj, następnie otwórze plik konfiguracyjny httpd.conf
i dodaj na jego końcu
następującą konfigurację:
# Be sure to only have this line once in your configuration NameVirtualHost 127.0.0.1:8080 # This is the configuration for your project Listen 127.0.0.1:8080 <VirtualHost 127.0.0.1:8080> DocumentRoot "/home/sfproject/web" DirectoryIndex index.php <Directory "/home/sfproject/web"> AllowOverride All Allow from All </Directory> Alias /sf /home/sfproject/lib/vendor/symfony/data/web/sf <Directory "/home/sfproject/lib/vendor/symfony/data/web/sf"> AllowOverride All Allow from All </Directory> </VirtualHost>
note
Alias /sf
daje ci dostęp do grafik i javascriptów, które są potrzebne
do poprawnego pokazywania domyślnych stron w symfony oraz paska debugowania.
W Windowsie, potrzebujesz zamienić linię Alias
na coś takiego:
Alias /sf "c:\dev\sfproject\lib\vendor\symfony\data\web\sf"
Oraz /home/sfproject/web
powinno być zmienione na:
c:\dev\sfproject\web
Ta konfiguracja pozwoli Apachowi słuchać na porcie 8080
na Twojej maszynie,
dlatego strina będzie dostępna pod adresem URL:
http://localhost:8080/
Możesz zmienić port 8080
na inny numer, ale pamiętaj że numery większe niż 1024
nie wymagają uprawnień administratora.
Test nowej konfiguracji
Zrestartuj Apacha i sprawdź, czy teraz masz dostęp do Twojej nowej aplikacji,
poprzez otwarcie przeglądarki i wpisanie http://localhost:8080/index.php/
, lub
http://www.myproject.com.localhost/index.php/
w zależności od ustawionej konfiguracji
Apacha, jaką wybrałeś w poprzednim podrozdziale.
tip
Jeżeli posiadasz zainstalowany moduł mod_rewrite
, możesz usunąć część
index.php/
z adresu URL. Jest to możliwe dzięki zastosowaniu reguł
przekierowujących, znajdujących się w pliku web/.htaccess
.
Możesz również spróbować otworzyć aplikację w środowisku programistycznym (zobacz następny rozdział na temat środowisk ) wpisując adres URL:
http://www.myproject.com.localhost/frontend_dev.php/
Toolbar debugowania powinien się pojawić w prawym górnym rogu, razem z małymi
ikonami, które świadczą o tym, że alias sf
został skonfigurowany poprawnie.
note
Konfiguracja jest trochę inna, jeżeli próbujesz ustawić symfony na serwerze IIS w środowisku Windows. Zobacz jak możesz skonfigurować to w powiązanym poradniku.
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.