KLone – KLone, wirtualne hosty, CGI, ipv6

Spis treści

 

Uwaga! Aby uruchomić KLone z nową konfiguracją nie trzeba kompilować ponownie środowiska. Wystarczy uruchomić:

co powoduje wymuszenie na KLone wczytania konfiguracji z podanego pliku

A. Wirtualne hosty

W KLone mamy możliwość dodawania wirtualnych hostów, który każdy z nich może wskazywać na inny folder z plikami strony, a także podłączać CGI.

Aby dodać wirtualny host o nazwie domeny mojastrona.pl należy:

1. w pliku webapp/etc/kloned.conf w deklaracji wskazanej w server_list  – app_http dodajemy deklarację, w której w nazwie jest nazwa domeny.
Mniej więcej wygląda to tak:

Nasza domena musi być dodana do serwera DNS.

Aby wywołać naszą domenę wpisujemy: mojastrona.pl:8080 – 8080 ponieważ domena będzie działać na porcie wskazanym w głównej deklaracji, jeżeli będzie klone działał na porcie 80, to nie trzeba określać portu docelowego.

 

B. CGI

Z Wikipedii:
CGI (ang. Common Gateway Interface) – znormalizowany interfejs, umożliwiający komunikację pomiędzy oprogramowaniem serwera WWW a innymi programami znajdującymi się na serwerze. Zazwyczaj program serwera WWW wysyła do przeglądarki statyczne dokumenty HTML. Za pomocą programów CGI można dynamicznie (na żądanie klienta) generować dokumenty HTML uzupełniając je np. treścią pobieraną z bazy danych.

Programy CGI są często pisane w językach interpretowalnych takich jak Perl, przez co nazywa się je także skryptami CGI.

KLone tak jak inne znane serwery WWW pozwala na używanie CGI. Pamiętajmy, że KLone nie kompiluje i nie interpretuje plików,a jedynie przekazuje dany plik do interpretera CGI i oczekuje na wynik. Interpreter powinien przekazać wynik z nagłówkiem text/html.

W jaki sposób sposób włączyć CGI? Zróbmy na przykładzie z PHP. W systemie mam zainstalowany php-cgi – jego lokalizacja to: /usr/bin/php-cgi. Jeżeli chcę dodać CGI to:
1. edytujemy plik webapp/etc/kloned.conf
2. W sekcji app_http na końcu dodajemy:

gdzie:
cgi – sekcja odnośnie CGI
script_alias – odwzorowuje adres URL na daną fizyczną ścieżkę na dysku, tutaj: http://192.168.1.185:8080/cgi-bin/ będzie odwoływało się do /opt/klone/webapp/www/cgi-bin
php.handler – w linii wskazujemy, że pliki z rozszerzeniem php mają być wykonywane przez /usr/bin/php-cgi
Jeżeli chcemy aby dane pliki z danym rozszeniem były wykonywane przez określony program CGI, jak zauważyłeś podajemy przez:

rozszerzenie.handler program_który_ma_wykonać_dany_plik

Jeżeli dany plik ma być wykonany sam przez siebie (o ile w pliku na początku ma deklarację środowiska) zamiast program_który_ma_wykonać_dany_plik podajemy exec. Należy pamiętać, że plik powinien wygenerować prawidłowy wynik odpowiedzi HTTP (zwykle wystarczy podać: Content/type: text/html).

3. Tworzymy folder cgi-bin w webapp/www

mkdir -p /opt/klone/webapp/www/cgi-bin

4. A następnie w cgi-bin tworzymy przykładowy plik php_echo.php :

5. Teraz wystarczy uruchomić KLone i uruchomić stronę: 

http://127.0.0.1:8080/cgi-bin/php_echo.php

I powinniśmy zobaczyć jak poniżej:

 

 

Jest to efekt przetworzenia przez CGI

C. IPv6

KLone pozwala na nawiązywanie z serwerem poprzez IPv6. 
Aby uruchomić IPv6, w pliku konfiguracyjnym należy dodać należy nową sekcję główną, której nazwa musi być także dodana do server_list.

Jako port powinniśmy podać taki sam jak dla ipv4, jednakże KLone zgłasza błąd że podany port jest zajęty (tak, przez KLone w wersji IPv4), więc podajemy inny.

Musimy pamiętać że nasza karta sieciowa powinna mieć wtedy przypisany adres IPv6.