Przejdź do treści

CGI

Na serwerach SMALL.PL jest możliwość uruchamiania aplikacji opartych o CGI, FastCGI, SCGI i UWSGI.

Uwaga

Niektóre aplikacje mogą wymagać aktywnej opcji Binexec

Wstępna konfiguracja domeny

Do uruchomienia strony wykorzystującej CGI, FastCGI, SCGI bądź UWSGI należy najpierw zadbać o prawidłową konfigurację samej domeny. Przed przystąpieniem do dalszych kroków należy upewnić się, że:

  • domena jest prawidłowo dodana i skonfigurowana w systemie DNS,
  • została dodana Strona WWW z wskazaniem typu PHP.

Konfiguracja FastCGI

Za pomocą pliku .htaccess definiuje się które żądania zostaną przekierowane do socketu FastCGI. Aby żądania do konkretnych rozszerzeń były obsługiwane przez FastCGI należy dodać:

AddType application/x-httpd-fastcgi0 .cgi

Aby przekierować cały ruch do socketu FastCGI należy dodać:

SetHandler application/x-httpd-fastcgi0

Aplikacje oparte o FastCGI należy podbindować do socketu: /usr/home/LOGIN/domains/DOMENA/fastcgi0.sock i nadać im uprawnienia: o+rw. Każda domena może używać aż do 10 socketów FastCGI.
Przykładowo, socket wybiera się wpisując w .htaccess jedną z poniższych linijek (obsługa dla pliku z rozszerzeniem .cgi):

AddType application/x-httpd-fastcgi0 .cgi
AddType application/x-httpd-fastcgi1 .cgi
AddType application/x-httpd-fastcgi2 .cgi
(...)
AddType application/x-httpd-fastcgi9 .cgi
  • Przekierowanie całego ruchu do socketu FastCGI:
SetHandler application/x-httpd-fastcgi0
SetHandler application/x-httpd-fastcgi1
SetHandler application/x-httpd-fastcgi2
(...)
SetHandler application/x-httpd-fastcgi9
  • Każdy z socketów (uprawnienia: o+rw) należy bindować na:
/usr/home/login/domains/domena/fastcgi0.sock
/usr/home/login/domains/domena/fastcgi1.sock
/usr/home/login/domains/domena/fastcgi2.sock
(...)
/usr/home/login/domains/domena/fastcgi9.sock

Tworzenie socketu

Utworzyć socket można poleceniem:

spawn-fcgi -M 0777 -F 1 -s /usr/home/login/domains/example.com/fastcgi0.sock /usr/local/sbin/fcgiwrap

Cyfra 1 to liczba workerów, czyli aplikacji serwujących skrypty CGI jednocześnie. Mniejsza ilość oznacza, że w razie większej liczby użytkowników niektórzy z nich mogą zobaczyć błąd - jeden worker jest w stanie obsłużyć jednego użytkownika na raz, dopiero gdy skrypt CGI się zakończy może obsłużyć następnego użytkownika.

Konfiguracja SCGI

Podobnie jak w przypadku FastCGI, za pomocą .htaccess można serwować stronę korzystającą z SCGI:

  • Konkretne rozszerzenie:
AddType application/x-httpd-scgi0 .cgi
  • Cały ruch:
SetHandler application/x-httpd-scgi0

Aplikacje oparte o SCGI należy uruchomić na serwerze i podbindować do socketu: /usr/home/LOGIN/domains/DOMENA/scgi0.sock i nadać im uprawnienia: o+rw. Analogicznie jak w przypadku FastCGI, możemy uruchomić do 10 socketów.

Konfiguracja UWSGI

Podobnie jak w przypadku FastCGI, za pomocą .htaccess można serwować stronę korzystającą z UWSGI:

  • Konkretne rozszerzenie:
AddType application/x-httpd-uwsgi0 .cgi
  • Cały ruch:
SetHandler application/x-httpd-uwsgi0

Aplikacje oparte o UWSGI należy uruchomić na serwerze i podbindować do socketu: /usr/home/LOGIN/domains/DOMENA/uwsgi0.sock i nadać im uprawnienia: o+rw. Analogicznie jak w przypadku FastCGI, możemy uruchomić do 10 socketów.