Fastweb
From Rootnode
Informacje wstępne
Fastweb działa w oparciu o Nginx (wymowa: endżin eks). Ustawiając dodatkowe parametry konfiguracyjne dla vhosta można skorzystać z informacji zawartych na nginx wiki.
Konfiguracja fastweb odświeżana jest co minutę. Należy oczywiście utworzyć pusty plik conf/reload w katalogu vhosta.
Przed serwerem www znajduje się serwer proxy. Należy mieć to na uwadze, ponieważ nie wszystkie aplikacje działają prawidłowo razem z proxy, a zmiany wprowadzone na stronie mogą pojawić się z kilkuminutowym opóźnieniem. Aby tego uniknąć do strony można połączyć się przez port 81. Wystarczy do adresu strony dopisać :81 np.: http://bongo.pl:81/instalacja
Nginx różni się znacząco od serwera Apache2:
- Pliki .htaccess nie mają zastosowania i nie działają. Co za tym idzie:
- Nie działają rewrity tworzące ładne URLe. Regułki należy odpowiednio przepisać.
- Nie działa logowanie na hasło, czyli basic auth oparte o pliki .htaccess oraz .htpasswd. Uwierzytelnianie należy odpowiednio skonfigurować w pliku nginx (tryb zaawansowany) lub w pliku auth (tryb prosty) za pomocą opcji auth.
- Nie działa listowanie plików w katalogach. Należy użyć opcji autoindex w pliku nginx (tryb zaawansowany) lub w pliku autoindex (tryb prosty).
|
Fastweb jest oparty o PHP w wersji 5.3. Zaktualizuj swoje skrypty, zanim zaczniesz przenosić je ze standardowego serwera www. Upewnij się także, czy twoja aplikacja jest kompatybilna z tą wersją PHP. |
Quota na serwerze fastweb wynosi 512MB. Istnieje kategoryczny zakaz trzymania warezów i nielegalnych treści na serwerze fastweb. W przypadku chęci posiadania większej quoty odezwij się do admina.
Zmiana DNS
Dla domeny należy ustawić rekord A na adres 89.248.171.134. Jeśli wcześniej został ustawiony rekord A na adres 89.248.166.198 lub 89.248.166.199 to należy go usunąć.
satan dns add a bongo.pl ^ 89.248.171.134 (lub) satan dns add a bongo.pl subdomena 89.248.171.134
Tworzenie vhosta
Aby utworzyć vhosta, wystarczy wykonać poniższe polecenia. Pierwsze polecenie od standardowego różni się jedynie dodaniem wyrazu fastweb na końcu. Polecenie init rozpoznaje czy ma do czynienia ze standardowym vhostem, czy z vhostem dla fastweb.
satan vhost add bongo.pl vhost.bongo.pl fastweb satan vhost init vhost.bongo.pl
Vhost zostanie utworzony w katalogu ~/fastweb/bongo.pl wraz z podkatalogami:
- htdocs, gdzie należy wrzucać pliki strony.
- logs, gdzie znajdują się logi serwera www: access.log oraz error.log.
- conf, gdzie za pomocą specjalnych plików możesz konfigurować zachowanie swojego vhosta.
Do strony można się dostać na dwa sposoby:
- przez proxy - wtedy podajemy zwyczajny URL: http://vhost.bongo.pl
- w trybie developerskim bez proxy - do URL należy dodać port 81: http://vhost.bongo.pl:81
|
Niektóre aplikacje np. wordpress, mają wbudowane przekierowania i nawet po połączeniu przez port 81 zmieniają URL na standardowy - bez portu 81. W takim wypadku należy poprawić konfigurację aplikacji. |
Podłączenie domeny login.rootnode.net
Specjalnym przypadkiem jest uruchomienie domeny typu login.rootnode.net na fastwebie, które z automatu mają przypisany adres wskazujący stary serwer webowy/proxy. Niestety obecny szatan nie jest przystosowany do zmiany konfiguracji i należy skorzystać z programu ondskab, który jest najprostszym klientem szatana jaki istnieje i który zwraca wyniki w XMLu.
Aby zmienić rekord A dla domeny typu login.rootnode.net wystarczy wykonać poniższe polecenia. Jeśli nigdy wcześniej nie tworzyłeś rekordu w domenie rootnode.net pomiń pierwsze polecenie. W przykładzie zakładamy, że login użytkownika to bongo. Oczywiście id istniejącego rekordu będzie się różnić w twoim przypadku.
$ /adm/domain/ondskab list dns my <opt> <listing id="30666" cname="" domain="rootnode.net" host="bongo" ip="89.248.166.198" mxprio="" type="a" uid="1234" wildcard="0" /> </opt> $ satan dns del 30666 $ satan dns add a rootnode.net bongo 89.248.171.134
Należy jeszcze utworzyć i zainicjalizować vhosta zgodnie z wcześniejszym punktem.
Jeśli wcześniej wykorzystywałeś tego vhosta na Venemie, to pamiętaj by go usunąć:
$ satan vhost del rootnode.net login.rootnode.net
Jeśli stary vhost nie da się usunąć powyższym poleceniem (a vhost nie jest przypisany do żadnej domeny):
$ satan vhost list my
Vhosts => my
Domain Vhost Type
login.rootnode.net web
należy użyć ponownie programu ondskab:
$ ondskab vhost del login.rootnode.net login.rootnode.net
Domyślny alias www.*
W przypadku utworzenia vhosta typu bongo.pl domyślnie tworzony jest alias www.bongo.pl. Ze względu na SEO tworzony jest automatyczny redirect typu 301 (permanent) na nazwę bez prefixu www. Należy pamiętać, że jest to alias na poziomie vhosta, aby prefiks www zadziałał konieczne jest jeszcze ustawienie odpowiedniego wpisu (np. typu CNAME) w systemie DNS.
Jeśli chcesz zrezygnować z domyślnego aliasu utwórz plik conf/nowww oraz conf/reload w celu odświeżenia vhosta.
Konfiguracja bazy danych
Na fastwebie dostępna jest jedynie baza danych MySQL. Aby utworzyć bazę oraz dodać użytkownika należy wykonać następujące polecenia. W celu sprawdzenia poprawności wykonania poleceń w ostatnim z nich listujemy wszystkie twoje bazy i użytkowników z serwera fastweb.
satan mysql adddb my1234_bongo fastweb satan mysql adduser my1234_bongo stdin fastweb satan mysql grant my1234_bongo my1234_bongo fastweb satan mysql list fastweb
Dane dostępowe do bazy
- połączenie z poziomu PHP: 127.0.0.1:3306
- połączenie z zewnątrz: lyon.rootnode.net:3306
phpMyAdmin
phpMyAdmin dostępny jest pod adresem https://lyon.rootnode.net/pma
Uprawnienia do plików i katalogów
Prawidłowe uprawnienia są następujące:
- katalogi: chmod 2750
- pliki: chmod 640
- właściciel: chown `whoami`:`id -u`
Można hurtowo załatwić sprawę uprawnień za pomocą poniższych poleceń:
cd ~/fastweb/moj.vhost.pl
find htdocs -type d -exec chmod 2750 {} \;
find htdocs -type f -exec chmod 640 {} \;
chown -R `whoami`:`id -u` ~/fastweb/vhost.bongo.pl
Jednakże przy każdym odświeżeniu vhosta, wszystkie katalogi i pliki mają z automatu nadawane prawidłowe uprawnienia.
Konfiguracja vhosta w trybie simple
Mamy dostępne dwa tryby konfiguracji: simple oraz xml. Tryb simple jest trybem szybkim i dla leniwych, ale ma mniej opcji konfiguracyjnych. Pozwala na wykonanie najpotrzebniejszych operacji bez tworzenia plików XML.
Do trybu simple należą pliki:
- autoindex - odpowiedzialny za tworzenie indeksu katalogu, tak abyśmy mogli zobaczyć w nim pliki i katalogi. Odpowiednik apachowego Options +Indexes z .htaccess.
- auth - uwierzytelnianie dla podanej ścieżki. Można także zdefiniować plik .htpasswd, domyślnie conf/htpasswd.
- rewrite - obsługa rewritów (nginx style) dla podanej lokalizacji
| przykład |
autoindex
/katalog / /innykatalog:normal
Na razie istnieje tylko jeden tryb normal, dlatego nie trzeba go definiować.
auth
/tajne:/home/bongo/fastweb/bongo.pl/conf/hasla /projekty
rewrite
/onet:(.*) http://onet.pl permanent /ftp:(.*) http://ftp.cdrom.com last
Konfiguracja vhosta w trybie zaawansowanym
W trybie xml powyższe pliki są ignorowane i rozpatrywany jest tylko plik /conf/nginx. Składnia pliku wygląda mniej więcej następująco:
<nginx>
<error code="403">/forbidden.html</error>
<error code="401 402 403 404">http://google.com</error>
<location path="/katalog">
<set variable="kobieta">zmienna</set>
<set variable="nazwapliku">$request_filename</set>
<if condition="!-f $request_filename">
<rewrite>(test.*) http://google.com/$1 permanent</rewrite>
<rewrite>(.*) http://nasa.gov last</rewrite>
<break/>
</if>
<autoindex type="normal"/>
</location>
<location path="/proxujemy">
<proxy_pass host="http://host.pl:1234/helo">
<proxy_set_header name="X-Powered-By">Rootnode</proxy_set_header>
<proxy_hide_header name="Server"/>
</proxy_pass>
</location>
<location path="/tajne">
<ssl/>
<auth text="Tajne przez poufne" file="$document_root/.htpasswd"/>
<rack_env name="stable"/>
</location>
<passenger_base_uri path="/aplikacja"/>
<rails_env name="devel"/>
</nginx>
Znaki specjalne XML
Proszę pamiętać, że niektóre znaki w XML mają specjalną reprezentację. Nie możemy wewnątrz znaczników XML napisać takich znaków jak ",',<,> oraz &. Należy zamienić je odpowiednio na:
- " zamieniamy na "
- ' zamieniamy na '
- < zamianiamy na <
- > zamieniamy na >
- & zamianiamy na &
Wbudowane zmienne Nginx
$args $binary_remote_addr $body_bytes_sent $content_length $content_type $document_root $document_uri $host $is_args $limit_rate $query_string $remote_addr $remote_port $remote_user $request_filename $request_body $request_body_file $request_completion $request_method $request_uri $scheme $server_addr $server_name $server_port $server_protocol $uri
Z wbudowanych zmiennych możesz korzystać w trakcie tworzenia konfiguracji XML. Opis znajdziesz na nginx wiki.
Znacznik <location>
Dostępne atrybuty:
- path - określa ścieżkę, do której będą się odnosić zawarta w tagach <location></location> konfiguracja. Najpopularniejsza ścieżka to <location path="/"></location>.
- prefix - przyjmuje wartości =,~,~* oraz ^~. Może także pozostać pusty. Szczegóły na temat prefiksów znajdziesz w opisie na nginx wiki
Znacznik <autoindex>
Dostępne atrybuty:
- type - określa typ listowania plików. Dostępne typy to: normal.
Autoindex domyślnie ustawia parametry:
- autoindex_exact_size off
- autoindex_localtime on
Znacznik <auth>
Dostępne atrybuty:
- text - określa tekst wyświetlany w oknie logowania. Domyślnie Restricted.
- file - określa lokalizację pliku z hasłami. Domyślnie $document_root/../conf/htpasswd, czyli plik conf/htpasswd. Plik z hasłem powinien być w formacie login:crypt_hasła. Plik ten najlepiej utworzyć za pomocą polecenia htpasswd. Będąc w katalogu conf wydajemy polecenie.
htpasswd -c htpasswd bongo
Znacznik <proxy_pass>
Dostępne atrybuty:
- host - określa ścieżkę do której wysyłane są żądania, np. http://domena.com:1234/hello.
Znacznik <proxy_set_header>
Dostępne atrybuty:
- name - nazwa znacznika, do którego przypisujemy daną wartość np. X-Proxy
- ciało znacznika - wartość ustawianego znacznika
Znacznik może znajdować się jedynie wewnątrz znaczników <proxy_pass></proxy_pass>.
Znacznik <proxy_hide_header>
Dostępne atrybuty:
- name - nazwa znacznika, który zostanie usunięty przed odwołaniem do proxy
Znacznik może znajdować się jedynie wewnątrz znaczników <proxy_pass></proxy_pass>.
Znacznik <if>
Dostępne atrybuty:
- condition - warunek na podstawie, którego wykona się funkcja if, np. -f $request_filename, co oznacza: sprawdź czy istnieje na dysku plik, do którego żądanie http się odwołuje.
Znacznik <return>
Dostępne atrybuty:
- code - kod błędu, który zostanie zwrócony, np. 404.
Znacznik, ze względu na swój charakter może zostać wywołany z natychmiastowym zamknięciem, czyli <return/>.
Znacznik <set>
Dostępne atrybuty:
- variable - nazwa zmienne którą ustawiamy, podawana bez znaku $, np. zmienna.
- ciało znacznika - wartość ustawianej zmiennej. Wartość może być także zmienną wbudowaną Nginx lub poprzednio ustawioną zmienną użytkownika.
Znacznik <break>
Nie przyjmuje żadnych atrybutów. Ze względu na swój charakter, znacznik można wywołać z natychmiastowym zamknięciem: <break/>
Znacznik <error>
Dostępne atrybuty:
- code - kod błędu, który chcemy obsłużyć np. 404. Atrybut ten może przyjmować wiele wartości oddzielonych spacją np. 403 404 405.
- ciało znacznika - adres strony z błędem np. /404.html lub http://google.com
Znacznik <ssl>
Nie przyjmuje żadnych atrybutów. Znacznik ten nie jest opcją konfiguracyjną nginx. Jest to jedynie alias dla przekierowania na połączenie szyfrowane HTTPS. Odpowiada poniższemu:
if ($scheme != 'https') {
rewrite ^(.*)$ https://$server_name$1 redirect;
}
Aby uruchomić obsługę https należy utworzyć plik conf/ssl i przeładować konfigurację.
Znacznik <passenger_base_uri>
Ma zastosowanie jedynie na serwerze obsługującym języki ruby i python. Przydatna jeśli posiadamy wiele aplikacji w ramach jednego vhosta. Dostępne atrybuty:
- path - określa główną ścieżkę aplikacji.
Znacznik <rails_env>
Zmienia środowisko aplikacji Rails. Domyślnym środowiskiem jest production. Dostępne atrybuty:
- name - nazwa środowiska.
Znacznik <rack_env>
Zmienia środowisko aplikacji Rack. Domyślnym środowiskiem jest production. Dostępne atrybuty:
- name - nazwa środowiska.
Dodatkowe parametry
W katalogu /conf można także umieścić inne pliki konfiguracyjne:
- wildcard - tworzy wpisy typu wildcard dla nazwy vhosta. Plik może być pusty. Może także zawierać w sobie słowa vhost lub alias. W zależności od tego co w środku takie wpisy wildcard powstaną.
- memcache - tworzy dedykowany memcache, opis poniżej.
- ssl - włącza połączenia szyfrowane HTTPS.
- nowww - wyłącza domyślny alias www.*
-
noproxy(niezaimplementowane) - pozwala ominąć proxy bez konieczności zmiany portu na :81
Memcache
Zachęcamy do korzystania z memcache, gdzie tylko się da. Znacząco przyspieszy to działanie twojej strony www i poprawi wydajność całej maszyny fastweb.
Aby skorzystać z memcache należy utworzyć plik conf/memcache w katalogu vhosta. Zostanie dla ciebie utworzony memcache o pojemności 32MB. Pomimo, że każdy użytkownik ma uruchomiony własny demon memcache to dostęp odbywa się za pomocą domyślnego adresu i portu, czyli 127.0.0.1:11211.
|
Jeśli posiadasz wiele aplikacji, które korzystając z memcache pamiętaj, aby stosować prefiksy na klucze. W przeciwnym wypadku dane mogą się mieszać między aplikacjami. |
Jeśli potrzebujesz większej ilości pamięci dla swojego memcache, daj znać administracji.
Wordpress
Aby dodać memcache do aplikacji Wordpress wystarczy plik object-cache.php zapisać do wp-content/object-cache.php, a następnie do pliku wp-config.php dodać linię:
$memcached_servers = array('127.0.0.1:11211');
Oczywiście należy także pamiętać o utworzeniu pliku conf/memcache, w katalogu vhosta, w celu uruchomienia demona memcache.
Połączenia szyfrowane HTTPS
Aby uruchomić https dla swojej domeny wystarczy utworzyć plik conf/ssl oraz przeładować konfigurację vhosta tworząc plik conf/reload.
Dla domen różnych od *.rootnode.net zostanie wygenerowany certyfikat podpisany przez Rootnode. Nie jesteśmy niestety oficjalnym Urzędem Certyfikacji dlatego też przy wejściu na stronę szyfrowanym kanałem użytkownik zostanie o tym poinformowany błędem unknown issuer i poproszony o doinstalowanie certyfikatu.
Osoby korzystące z domeny typu login.rootnode.net są w lepszej sytuacji, ponieważ posiadamy certyfikat podpisany przez oficjalny Urząd Certyfikacji (CA), którym jest Godaddy. W tym przypadku użytkownik nie zobaczy żadnego niepokojącego komunikatu.
Na potrzeby połączeń HTTPS został utworzony znacznik <ssl/>, który może zostać dodany do pliku conf/nginx. Rozwiązuje on problem przekierowania strony na https.
|
Jeśli, w którymś momencie pojawi ci się błąd 400 Bad Request The plain HTTP request was sent to HTTPS port, koniecznie daj znać administracji. |
Odświeżenie konfiguracji i błędy
Po jakichkolwiek zmianach w konfiguracja vhosta należy odświeżyć konfigurację. Aby to zrobić wystarczy utworzyć pusty plik conf/reload i odczekać minutę. Po przeładowaniu konfiguracji plik reload zostanie usunięty.
Jeśli system wykryje błędy w katalogu conf znajdziesz plik error z opisem błędu. Po poprawieniu konfiguracji ponownie utwórz plik reload. Jeśli konfiguracja będzie poprawna znikną oba pliki.
Statystyki AWSTATS
Na fastweb w bardzo prosty sposób można uruchomić statystyki awstats. Wystarczy utworzyć plik conf/awstats i przeładować vhosta za pomocą pliku conf/reload. Po minucie statystyki będą dostępne pod adresem twój.vhost.pl/awstats.
|
W katalogu twojego vhosta zostanie utworzony symlink o nazwie awstats, który prowadzi do strony ze statystyką. Jeśli wcześniej posiadałeś katalog awstats usuń go i przeładuj konfigurację. |
Dane w statystykach odświeżają się co godzinę.
Ochrona hasłem
Aby dostęp do statystyki był chroniony hasłem wystarczy:
- W trybie simple: utworzyć plik conf/auth z zawartością /awstats.
- W trybie xml: do pliku conf/nginx dodać:
<location path="/awstats"> <auth/> </location>
Login i hasło, będąc w katalogu conf, można wygenerować za pomocą polecenia htpasswd -c htpasswd twójlogin. Jeśli dodatkowo chcesz mieć dostęp przez https, przed znacznik <auth/> dodaj znacznik <ssl/> oraz utwórz plik conf/ssl i przeładuj konfigurację vhosta.
FAQ
- Czy SVN lub inne repozytoria działają na fastweb?
- Nie. Repozytoria należy zestawiać poza serwerami fastweb.
- Potrzebuję większą quote niż 512MB. Co zrobić?
- Poproś administratora na ircu. Nie zapomnij podać swojego uidu i wielkości jaką potrzebujesz.
- Czy będzie dostępny PostgreSQL na Fastweb?
- Prawdopodobnie niebawem będzie dostępny.
Gotowe rozwiązania
Jeśli miałeś problemy z czymś i to rozwiązałeś to zamieść opis poniżej - dla potomnych.
Tworzenie serwera treści statycznych na Venemie
Powiedzmy, że chcemy aby wszystkie duże dane statyczne leżały sobie spokojnie na Venemie, a cały skrypt śmigał jak petarda na Fastwebie. Jednym ze sposobów jest stworzenie drugiego vhosta z poddomeną odwołującą się do Venemy. Aby uniknąć bajzlu w dnsach, gdy ustawimy by główny rekord A domeny wskazywał na Fastweb, najprościej wydelegować konkretną subdomenę aby wskazywała na Veneme.
W przykładzie chcielibyśmy aby za serwer statyczny robił vhost pod adresem static.bongo.pl:
satan dns add a bongo.pl static 89.248.166.198
Następnie wystarczy stworzyć standardowego vhosta, według instrukcji na stronie Vhost
satan vhost add bongo.pl static.bongo.pl satan vhost init static.bongo.pl
Przydatne by nie zużywać cennych megabajtów na fastwebie na download, dokumenty, itp.
mod_rewrite -f -d z Apache2
Większość .htaccess dla gotowych skryptów (clean url) posiada linię sprawdzające czy odwołujemy się do pliku lub katalogu:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?args=$1 [L]
W Nginx nie ma sensu robić dwóch warunków, wystarczy używać -e, który sprawdza czy jest to plik, katalog lub symlink:
host.pl/jakiestamcostam -> host.pl/index.php?args=jakiestamcostam
<nginx>
<location path="/">
<if condition="!-e $request_filename">
<rewrite>^/(.+)$ /index.php?args=$1 last</rewrite>
<break/>
</if>
</location>
</nginx>
Oczywiście nic nie stoi na przeszkodzie żeby zamiast !-e wpisać samo !-f
SVN
NIESPRAWDZONE. Farma nie obsługuje SVNu, więc powinny one zostać na venemie. Jeśli jednak SVN jest tylko kawałekiem Twojej strony (np bong.pl -> portal, bongo.pl/svn -> SVN) to sensownym rozwiązaniem wydaje się stworzenie vhostu bongo.pl jako fastweb -> 89.248.171.134, svn.bongo.pl jako zwykły -> 89.248.166.199 i skonfigurowanie na nim SVNu). Następnie użycie magii rewrite'ów nginxa (plik xml/simple) i przekierowanie bongo.pl/svn na svn.bongo.pl przez proxy_pass.
Wordpress i Fastweb
Fastweb i Wordpress - jak zrobić aby nasz blogasek obsługiwał piękne linki i korzystał z memcache.
Przenoszenie Wordpresa z istniejącego vhosta(wersja na szybciora)
1. stworzyć nowy vhost i bazę mysql na fastweb jw
2. wyłączyć wszystkie pluginy na starym vhost
3. zrzucić bazę ze starego mysql do pliku np baza.sql (polecenie mysqldump)
4. przerzucić katalog htdocs ze starego wordpresa na fastweb
5. ustawić chmody na 2750 dla katalogów i 640 dla plików (szczególnie dla pluginów). Można posłużyć się poniższymi poleceniami, aby nadpisać prawa dostępu dla wszystkich swoich vhostów na fastwebie:
$ find /fastweb/`whoami`/www/*/htdocs/ -type d -exec chmod -v 2750 '{}' \;
$ find /fastweb/`whoami`/www/*/htdocs/ -type f -exec chmod -v 640 '{}' \;
6. załadować zrzuconą bazę do mysql na fastwebie (serwer lyon.rootnode.net)
7. zalogowac sie do mysql na fastwebie i podmienić vhosty w bazie, np (odpalamy 3 query):
a) UPDATE dk_options SET option_value = replace(option_value, 'http://r00t.pl', 'http://fastweb.r00t.pl') WHERE option_name = 'home' OR option_name = 'siteurl';
b) UPDATE dk_posts SET guid = replace(guid, 'http://r00t.pl','http://fastweb.r00t.pl');
c) UPDATE dk_posts SET post_content = replace(post_content, 'http://r00t.pl', 'http://fastweb.r00t.pl');
oczywiście dk_ to prefix moich tabel wp w bazie mysql - wpiszcie wasze.
8. w wp-config.php dopisać linijkę z lokacją nowego vhosta na fastweb
define('WP_HOME','http://fastweb.r00t.pl');
define('WP_SITEURL','http://fastweb.r00t.pl');
9. w wp-contents/themes/nazwa_tematu/functions.php dopisać zmianę vhostów:
update_option('siteurl','http://fastweb.r00t.pl');
update_option('home','http://fastweb.r00t.pl');
jak temat nie ma functions.php to stworzyć sobie pliczek. w pkt 8 i 9 zmiany wpisujemy zaraz na samym początku.
10. pewnie nie będą działać linki. to wina braku redirectów jak pisano wyżej. albo przepiszecie sobie regułki ale na szybko wystarczy wybrać opcję default (http://fastweb.r00t.pl/?p=123) i wetedy wszystko będzie hulać.
11. zalogować się jako admin i poustawiać to i owo.
12. jak już wp hula to powinno się usunąć linijki dopisane w pkt 8 i 9 (NIE TESTOWANE !!!)
Framework Symfony
Od wersji 1.4 Symfony nie posiada możliwości freezowania aplikacji. W związku z czym by uruchomić aplikację potrzebujemy pobrać framework do katalogu widzianego z fastweb. By móc wykorzystać go w wielu projektach proponujemy katalog ~/fastweb/symfony:
svn co http://svn.symfony-project.com/branches/1.4 ~/fastweb/symfony
Katalog będzie widziany z fastweb jako /home/login/www/symfony/ w związku z czym w pliku aplikacji confing/ProjectConfiguration.php musimy ustawić do niego poprawną ścieżkę:
require_once '/home/login/www/symfony/lib/autoload/sfCoreAutoload.class.php';
Ścieżka widziana z poziomu serwera shellowego wygląda inaczej więc by móc korzystać z narzędzi konsolowych frameworka możemy zastosować proste sprawdzanie skąd ładowany jest plik konfiguracji (pamiętajmy by wstawić w miejsce login swój login):
//If run as www if(($autoload_path = '/home/login/www/symfony/lib/autoload/sfCoreAutoload.class.php') && file_exists($autoload_path)) require_once $autoload_path; //If run as cli application else require_once '/fastweb/login/www/symfony/lib/autoload/sfCoreAutoload.class.php';
Przykładowa konfiguracja nginx'a dla Symfony można obejrzeć tutaj http://wiki.nginx.org/NginxSymfony W przełożeniu na tryb zaawansowny na Rootnode powinniśmy w pliku conf/nginx umieścić:
<nginx>
<location path="/">
<if condition="-f $request_filename">
</if>
<if condition="$request_filename !~ '\.(js|htc|ico|gif|jpg|png|css)$'">
<rewrite>^(.*) /index.php last</rewrite>
</if>
</location>
</nginx>
Uwaga: Konfiguracja była tylko wstępnie testowana, brakuje paru elementów z powodu braku obsługi odpowiednich znaczników w XML'u tryby zaawansowanego (takich jak parameter root).
Short URLs w MediaWiki
Postępujemy tak jak jest opisane tutaj, jednak zamiast pliku .htaccess tworzymy w folderze conf naszego vhosta plik nginx:
<nginx>
<location path="/">
<if condition="!-e $request_filename">
<rewrite>^/(.*)$ /w/index.php?title=$1 last</rewrite>
<break />
</if>
</location>
</nginx>
A następnie robimy touch conf/reload.
Joomla 1.5 na Fastweb
Proste adresy
W konfiguracji Joomli nalezy uaktywnić opcje "Proste adresy", "Korzystaj z mod_rewrite", "Adresy z przyrostkiem", a następnie w folderze conf vhosta tworzymy plik nginx o treści:
<nginx>
<location path="/">
<if condition="!-e $request_filename">
<rewrite>(/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ /index.php last</rewrite>
break;
</if>
</location>
</nginx>
Następnie robimy touch conf/reload. Jeśli z jakiegoś powodu ten sposób nie będzie działał i stracimy dostęp do panelu administracyjnego to należy w folderze z Joomlą znaleźć plik configuration.php i ustawić w nim zmienne $sef, $sef_rewrite oraz $sef_suffix na wartość 0.
Memcache
W panelu administratora, w global configuration -> System -> Cache Settings oraz Session Settings ustawiamy:
Cache: Yes Cache Handler: Memory Cache Persistent Memory Cache: Yes Memory Cache Server Host: localhost Memory Cache Server Port: 11211 Session Handler: Memory Cache
Powinno działać jeśli coś się posypie edytujemy na serwerze plik configuration.php, znajdujemy zmienne wypisane niżej i usawiamy im wartości jak niżej
var $caching = '0'; var $cache_handler = 'file'; var $memcache_settings = array(); var $session_handler = 'database';
Rewrite z subdomeny na folder
(dla przykładu: blogasek.bongo.pl -> bongo.pl/blogasek) W pliku conf/nginx:
<nginx>
<location path="/">
<if condition="$host ~* (.*)blogasek.bongo.pl">
<rewrite>^(.*) /blogasek$1</rewrite>
<break />
</if>
</location>
</nginx>
Następnie touch conf/wildcard oraz touch conf/reload. Adres w pasku adresu przeglądarki pozostanie bez zmian. W sytuacji gdy serwer DNS mamy poza rootnode, należy ustawić wildcarda, bądź CNAME z blogasek.bongo.pl na bongo.pl
