zapiski z podróży po świecie informatyki (ps. lisp jest lepszy)
Blog | Archiwum || StackOverflow | GitHub

"shtml":

2019-06-11

Server Side Includes część 1/2.

1 Apache+SSI

SSI to rozszerzenie do serwera Apache. Przychodzi razem z Apachem, więc "dostępność" jest bardzo wysoka (nawet jak się okazuje mój hosting provider domyślnie ma to włączone). Generalnie nie ma potrzeby niczego instalować, wystarczy włączyć.

1.1 Szybkość

W naiwnych testach typu ilość zapytań o dynamicznie tworzoną stronę "hello world" obsłużonych na sekundę, wychodzi że SSI jest szybsze od PHP, Pythona i całej reszty. Jeśli więc nie ma jakiś wielkich potrzeb dotyczących funkcjonalności, SSI jest na pewno najszybsze. Co za tym idzie najoszczędniejsze też dla zasobów serwera.

1.2 Funkcjonalność

Może w pierwszej chwili wydawać się skromna, ale nie ulegajmy złudzeniom, wiele fajnych rzeczy da się tym szybko i wygodnie zrobić. Funkcjonalność zawiera:

  • definiowanie zmiennych
  • wyświetlanie zmiennych
  • operacje warunkowe
  • dołączanie plików
  • dołączanie wyników wywołań url
  • wywoływanie poleceń shell
  • podstawową obsługę błędów

Oczywiście dekodera mpg w tym nie napiszemy, ale do budowy prostego serwisu web'owego w wielu przypadkach w zupełności wystarczy.

2 Konfiguracja

Dodać w pliku konfiguracyjnym vhost'a informację:

  • w którym katalogu (z podkatalogami) chcemy żeby apache przetwarzał pliki poprzez SSI, np:
<Directory /var/www/lisper>
  Options +Includes
</Directory>
  • które pliki są plikami dla SSI:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
  • dodatkowo, jeżeli wolimy żeby pliki dla SSI były wskazywane nie przez rozszerzenie (.shtml) a przez bit wykonywalności:
XBitHack on

Następnie zrestartować serwer Apache.

3 Test

Aby sprawdzić, czy wszystko dobrze poszło:

  • wrzucić do katalogu serwera wirtualnego plik index.html z prostym poleceniem dla SSI:
echo '<!--#echo var="DATE_LOCAL" -->' > index.html
  • i ustawić na nim bit wykonywalności:
chmod +x index.html

Po otworzeniu w przeglądarce, powinniśmy dostać stronę z aktualnym czasem i datą serwera.

4 Co dalej?

W następnej części opiszę na przykładach, co w zasadzie i jak z SSI możemy praktycznie zrobić.

5 Linki:

Tagi: apache ssi shtml
Pozostałe wpisy