CGI
Na serwerach MyDevil jest możliwość uruchamiania aplikacji opartych o CGI, FastCGI, SCGI i UWSGI.
Niektóre aplikacje mogą wymagać aktywnej opcji binexec
Spis treści
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 naszym 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 socketa fastcgi należy dodać:
DefaultType 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
Korzystając z DefaultType zamiast SetHandler, można z łatwością ustawić plik index (domyślny, który będzie widziany dla użytkownika po wejściu na stronę). Przykładowo, aby ustawić plik test.py jako stronę główną należy dopisać:
DirectoryIndex test.py
Tworzenie socketu
spawn-fcgi -M 0777 -F 1 -s /usr/home/login/domains/example.com/fastcgi0.sock /usr/local/sbin/fcgiwrap
Pogrubiona 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
Lub 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
Lub 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.