--=REKLAMA=--

Jak Joomla działa z FastCGI?

Z Joomla!WikiPL

Wersja Zwiastun (dyskusja | edycje) z dnia 08:41, 16 kwi 2009

(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)

Gdy PHP działa w trybie FastCGI, Twój serwer uruchamia interpreter PHP jako moduł Apache, ale z uprawnieniami realnego użytkownika konta.

Standardowo PHP jest uruchamiany albo jako moduł Apache, albo w trybie CGI.

PHP uruchomiony jako moduł Apache działa z uprawnieniami uniwersalnego użytkownika serwera internetowego, co wprawdzie zapewnia szybsze działanie, ale nie jest zbyt bezpieczne. Uniwersalny użytkownik ma prawa odczytu i zapisu danych wszystkich klientów na serwerze.

W trybie CGI PHP działa z uprawnieniami realnego użytkownika systemu, najczęściej – właściciela konta i równocześnie użytkownika FTP. Użytkownik taki – po odpowiednim skonfigurowaniu serwera – nie ma wglądu w dane na innych kontach. Ale w trybie CGI dla każdego użytkownika PHP uruchamiany jest odrębnie, jako odrębny proces, co istotnie obciąża i spowalnia serwer.

FastCGI, stosowany na serwerach współdzielonych, a więc wykorzystywanych przez wielu użytkowników, łączy zalety obu trybów. PHP uruchamiany jest jako moduł Apache, ale – jak w CGI – z uprawnieniami realnego użytkownika. Uruchomienie PHP w trybie FastCGI również wiąże się z pewnym zmniejszeniem wydajności serwera, ale jest rozwiązaniem zapewniającym większe bezpieczeństwo.

Korzystanie z FastCGI powoduje jednak inne problemy. Ponieważ PHP działa jako pojedynczy proces, to – o ile wiem – nie może przetwarzać pliku .htaccess albo php.ini dla katalogu, a więc w praktyce plików definiowanych przez realnych użytkowników konta. Aby zmienić ustawienia PHP skonfigurowane dla całego serwera, dostawca usługi musi zapewnić specjalną metodę umieszczania własnych plików php.ini modyfikujących niektóre ustawienia globalne. Oto jak rozwiązuje ten problem jeden z usługodawców: przetwarza co godzinę (parsuje) jeden plik php.ini, zawierający ustawienia, które mogą zmieniać użytkownicy, a ustawienia, których modyfikować nie można, umieszcza w głównym php.ini.

W ten sposób użytkownicy mogą zmienić pewne ustawienia tylko dla swojej witryny, takie jak register_globals czy przełączanie między PHP4 i PHP5.

Jeśli Twój serwer korzysta z FastCGI, możesz poprosić o udostępnienie takiej metody, jak powyżej, aby wprowadzić zmiany, albo możesz poprosić o skorygowanie ustawień zgodnie z Twoimi potrzebami.

Źródła

Dziękujemy za wkład

» Stefan Wajda [zwiastun],