Serwer WWW i ustawienia PHP
Transkrypt
Serwer WWW i ustawienia PHP
Pomoc Serwer WWW i ustawienia PHP Zmieniony 16.10.2009. Zanim się zdecydujesz wykupić miejsce na serwerze bądź na serwer darmowy, sprawdź, czy środowisko serwera umożliwi pełną i bezproblemową obsługę Joomla! Serwer WWW Joomla! może być zainstalowany na każdym serwerze WWW, który obsługuje PHP, np. Internet Information Server (IIS) w wersji 5 lub wyższej dostępnym w systemie Windows. Najlepiej - serwer Apache Najlepszym serwerem internetowym dla Joomla! jest jednak Apache co najmniej w wersji 1.13.19. Oczywiście, im nowsze wydanie, tym lepiej. Może to więc z powodzeniem być Apache v. 2.0 Prostsze adresy - moduł rewrite Pożądanym, ale niewykluczającym możliwości obsługi Joomla! jest Apache skonfigurowany z modułem mod_rewrit który umożliwia przetwarzanie skomplikowanych, generowanych przez Joomla! adresów URL na prostsze, przyjazne w postaci np. www.joomla.pl/content/view/2/5/. Serwer baz danych Joomla! korzysta z bazy danych MySQL. Musi to być co najmniej MySQL w wersji 3.23.x. Oczywiście, podobie jak w przypadku Apache, może to być także MySQL w wersji 4.x.x czy 5.x.x W kolejnych wersjach Joomla! przewidziane jest zastosowanie rozwiązań umożliwiających korzystanie z różnych baz danych. Tak że ograniczenie, iż musi to być MySQL może się okazać z czasem nieaktualne. Klient obsługi bazy danych W codziennych pracach administracyjnych mogą się zdarzyć sytuacje, w których niezbędne będzie wykonanie pewn czynności bezpośrednio w bazie danych. W takich przypadkach niezbędny jest program umożliwiający obsługę baz phpMyAdmin bądź inny. Brak takiego programu powinien w zasadzie przemawiać za rezygnacją z usług dostawcy. Jeśli jednak rezygnacja nie wchodzi w grę, można zainstalować w Joomla! komponent, który w razie potrzeby pozwoli obsłużyć problemy z baz danych z poziomu panelu administracyjnego. Trzeba się jednak liczyć z możliwością uszkodzona np. tabeli sesji, w wyniku czego zalogowanie się do panelu administracyjnego Joomla! nie będzie w ogóle możliwe. PHP Joomla! jest napisany w PHP, stąd język ten musi być zainstalowany na serwerze WWW. Musi to być co najmniej PHP w wersji 4.2.x. Ale to rzeczywiście niezbędne minimum. Aktualnie standardem jest instalowanie na serwerach PHP w wersji 5.x.x. Wbrew częstym obiegowym opiniom, PHP w wersji powyżej 5.0 jest dobrym rozwiązaniem dla Joomla!, choć może czasem stwarzać kłopoty. Ustawienia PHP Odpowiednie dla Joomla ustawienia PHP można podzielić na trzy grupy: podstawowe, zalecane oraz pożądane, ale niekonieczne. Podstawowe wymagania Trzy wymagania są dla pełnej obsługi Joomla! niezbędne: - włączona obsługa XML, - włączona obsługa biblioteki zlib, http://www.pomoc.joomla.pl Kreator PDF Utworzono 2 March, 2017, 04:51 Pomoc - włączona obsługa biblioteki GD lub GD2. Bez włączonej obsługi XML Joomla! nie będzie działać. Skrypty XML zawierają m.in. instrukcje konfigurujące poz menu, komponenty, moduły, boty i szablony. Biblioteka Zlib umożliwia kompresję i dekompresję spakowanych plików. Można się wprawdzie bez tej funkcji obyć jej brak stanowi poważne utrudnienie. Wszystkie trzeba instalować z rozpakowanych i przesłanych na serwer pakietów źródłowych. Niemożliwe jest również korzystanie ze wszystkich funkcji komponentów obsługujących plikownie czy galerie grafik. GD jest biblioteką graficzną, umożliwiającą manipulację obrazami - m.in. dynamiczne tworzenie miniatur. Bibliotek dostępna na warunkach GNU GPL pod adresem www.libgd.org. Istotne ustawienia PHP Wyłączony tryb bezpieczny Obsługa Joomla! wymaga PHP z wyłączonym trybem bezpiecznym [safe_mode=OFF]. Włączenie tej opcji ogranicza wykonywanie skryptów PHP. Dla administratorów Joomla! efekt włączenia bezpiecznego trybu jest szczególnie uciążliwy w okresie tworzenia zrębów witryny - niemożliwe jest bowiem instalowanie rozszerzeń - komponentów, modułów, botów, szablonów (dokładniej - utworzenie katalogów niezbędnych do zainstalowania nowego składnika). W skonfigurowanym Joomla! włączony tryb bezpieczny również stwarza spore kłopoty przy wczytywaniu plików (np. graficznych do Biblioteki mediów czy przez komponent obsługujący plikownię). Na serwerach z włączonym trybem bezpiecznym nie należy instalować Joomla!, bo szanse na przekonanie administratora, by tę opcję wyłączył, są raczej niewielkie. Jeśli już musimy korzystać z takiego serwera, warto p zasobach Joomla! specjalnej łatki eliminującej problemy włączonego safe_mode Warto wiedzieć, że w PHP 6.0 safe_mode zostanie zlikwidowanym, bowiem wbrew przeznaczeniu jego walory dla bezpieczeństwa są niewielkie. Wyłączona rejestracja zmiennych globalnych Dyrektywa register_globals ustala, czy zmienne środowiska, GET, POST, COOKIE i serwera mają być rejestrowane. Ustawienie register_globals=ON stwarza zagrożenie w przypadku źle napisanych skryptów (niewłaściwych knstrukcji pętli i warunkow). Powoduje, że wszystkie zmienne wysłane do skryptu tworzone są jako globalne i nadpisują wcześ ustalone wartości tych zmiennych lub tworzą zmienne jeszcze nieistniejące, ale wykorzystywane później w skrypcie. Tę sytuację mogą wykorzystać średnio zaawansowani rozbójnicy internetowi, aby np. oszukać procedurę autoryzacji. Dla Joomla! ta dyrektywa winna być wyłączona - dostęp do zmiennych EGCPS realizowany jest za pomocą składni $HTTP_ENV_VARS['zmienna'] lub $_POST['zmienna'] czy też $HTTP_GET_VARS['zmienna'] lub $_GET['zmienna']. Wyłączenie register_globals powoduje, że PHP nie utworzy żadnych nie zdefiniowanych wprost w skrypcie zmiennych globalnych. Opcję register_globals można jednak wyłączyć dla konkretnego katalogu. Wystarczy w pliku .htaccess wpisać wiersz php_flag register_globals 0 Włączone wyświetlanie błędów http://www.pomoc.joomla.pl Kreator PDF Utworzono 2 March, 2017, 04:51 Pomoc Możliwość poznania przyczyn błędów w działaniu skryptów jest administratorom Joomla! niezbędna. Wyświetlan komunikatów o błędach zapewnia opcja display_errors=ON. Oczywiście, włączenie tej opcji stwarza pewne zagroże - komunikaty o błędach zawierają m.in. pełne ścieżki do plików, wersje oprogramowania, fragmenty zapytań SQL, k można złośliwie wykorzystać. Ale Joomla! umożliwia wyłączenie wyświetlania komunikatów o błędach w konfi globalnej (o czym warto sobie przypomnieć po przetestowaniu działania Joomla!). Możliwe wczytywanie plików Joomla! wymaga PHP z włączoną możliwością wczytywania plików binarnych wysyłanych metodą POST. Konie jest więc ustawienie dyrektywy file_uploads. Bez takiego ustawienia nie będzie możliwe ani instalowanie rozszerzeń, ani przesyłanie plików do Biblioteki mediów czy innych katalogów, np. komponentu obsługującego udostępnianie dokumentów. Cytowanie znaków niebezpiecznych Trzy ustawienia PHP odpowiadają za ważne dla obsługi Joomla! cytowanie znaków niebezpiecznych: - magic_quotes=ON - magic_quotes_gpc=ON - magic_quotes_runtime=ON Gdy magic_quotes są włączone, wszystkie znaki apostrofu ('), cudzysłowia ("), lewe ukośniki (\) oraz znaki NULL są poprzedzane znakami znaku lewego ukośnika (\). Włączenie magicznych ukośników chroni Joomla! przed atakami typu SQL Injection [wstrzykiwania zapytań SQL] w przypadkach, gdy programista zapomni gdzieś przefiltrtować dane przesyłane przez użytkowników w formularzach. Gdy włączona jest opcja magic_quotes_gpc, to PHP automatycznie dodaje lewy ukośnik do wszystkich operacji posługujących sie zmiennymi z tablic superglobalnych [POST, GET COOKIE], wykonując wcześniej funkcję addslashe Dyrektywa magic_quotes_runtime ma natomiast wpływ tylko na niektóre funkcje wykonujące i niewykonujące operacji addslashes() [wykonujące: file(), file_get_contents(), fread(), fgets(); niewykonujące: readfile(), parse_ini_file(), fgetss(), fgetc(), fgetcsv(), fscanf()]. W efekcie jej włączenia większość funkcji, które zwracają dane z dowolnych zewnętrzn źródeł, włącznie z danymi z baz danych i plików tekstowych, będzie zwracała dane z apostrofami i cudzysłowami poprzedzonymi znakiem lewego ukośnika (\). Pożądane ustawienia PHP Włączone otwieranie plików na serwerze Ustawienie allow_url_fopen włącza możliwość wykorzystania funkcji fopen(), aby uzyskać dostęp do plików na dys lokalnym serwera przez podanie adresu URL z wykorzystaniem protokołów HTTP i FTP, znajdujących się na zdalnych serwerach. Ustawienie to może być wykorzystane w ataku na serwer. Powoduje ono, że w funkcjach takich jak fopen(), include(), require() można używać adresów URL jak plików, co może prowadzić do wielu problemów: włamań do serwisu, blokady serwera WWW czy znacznego spowolnienia odczytywania strony. Jeśli allow_url_fopen zostanie wyłączone, niemożliwa będzie m.in. automatyczna aktualizacja rozszerzeń, posiadają taką opcję. Ale bez tego ułatwienia można się obejść. Toteż chociaż ustawienie allow_url_fopen=ON jest przy http://www.pomoc.joomla.pl Kreator PDF Utworzono 2 March, 2017, 04:51 Pomoc specjaliści od bezpieczeństwa Joomla! przekonują do ustawienia bezpieczniejszego: allow_url_fopen=OFF. Ze względó bezpieczeństwa włączenie i wyłączenie tej funkcji jest możliwe tylko w pliku php.ini. Maksymalny rozmiar przesyłanych plików Dwa ustawienia decydują o dopuszczalnych rozmiarach plików przesyłanych na serwer: - upload_max_file_size= - określa maksymalny dopuszczalny rozmiar wczytywanych plików, - post_max_size= - określa maksymalny rozmiar danych przesyłanych metodą POST Odpowiednie ustawienie zależy od potrzeb witryny. Standardowo administratorzy zezwalają na wczytywanie plików o rozmiarach do 8MB. Jeśli nasze potrzeby są większe, trzeba się zwrócić z prośbą do administratora o podwyższ wartości. Wartość dla post_max_size powinna być większa niż dla upload_max_file_size, np. o 1, a wartość memor powinna być większa. Czas wykonywania skryptów Maksymalny czas wykonywania skryptów ustawiany jest standarodowo max_execution_time=30. Jeśli po upływie tego czasu skrypt nie zostanie wykonany, jego działanie jest przerywane. Standardowe 30 sekund jest ustawieniem wystarczajacym, chroni przed blokowaniem serwera przez źle napisane skrypty. Jeśli ustawienie to staje się powodem błędu, należy odszukać wadliwy skrypt i albo go poprawić, albo zrezygnować z niego, zastępując innym rozwią Czas oczekiwania na przesłanie danych Maksymalny czas oczekiwania na przesłanie strumienia danych ze źródła zależy od ustawienia default_socket_timeout. Najczęściej spotykanym jest ustawienie default_socket_timeout=0. Jeśli ustawienie to stwarza problemy, można zwrócić się do administratora o modyfikację na default_socket_timeout=30. Krótkie znaczniki Ustawienie short_open_tag decyduje o możliwości stosowania w skryptach skróconej formy znaczników otwierających - <? zamiast - <?php. Ponieważ Joomla! używa PHP w połączeniu z XML, opcja ta winna być wyłączona [short_open_tag=0]. Zdarza się wszakże, że na wielu serwerach jest włączona. W efekcie mogą pojawiać się różnego typu błędy w przypadkach, gdy PHP napotka skrócone znaczniki otwierające. Najczęśćiej zatrzymywane wykonywanie skryptu. Niekiedy wyświetlany jest kod skryptu. Jeśli prośba do administratora o zmianę tego ustawienia nie przyniesie rezultatu, nie ma co wpadać w panikę. Wystarcz przejrzeć skrypty rozszerzenia, które sprawia kłopoty, wyszukać w nich sekwencje <? i zastąpić je tekstem <?php Lista kontrolna Poniższa lista zawiera zestawienie wszystkich zalecanych i pożądanych ustawień. Znaczenie zastosowanych kolorów jest następujące: - czerwony: wymaganie musi być spełnione, - pomarańczowy: wymaganie powinno być spełnione, ale można je obejść przy pomocy łatek lub nie jest do działani witryny niezbędne. - zielony: sytuacja optymalna. Ustawienia PHP Pożądane ustawienia PHP http://www.pomoc.joomla.pl Kreator PDF Utworzono 2 March, 2017, 04:51 Pomoc safe_mode - tryb bezpieczny On Off register_globals - rejestrowanie zmiennych globalnych On Off display_errors - wyświetlanie błędów Off On file_uploads - wczytywanie plików Off On magic_quotes - cytowanie znaków niebezpiecznych Off On magic_quotes_gpc - cytowanie znaków niebezpiecznych w operacjach GET, POST, COOKIE. Off On magic_quotes_runtime -cytowanie znaków niebezpiecznych w innych funkcjach Off On output_buffering - buforowanie danych wyjściowych On 0ff Session auto start - obsługa sesji, domyślnie wyłączona 1 0 Pożądane ustawienia PHP allow_url_fopen - dostęp do obiektów URL jak do plików 0 1 short_open_tag - skrócone znaczniki On Off upload_max_file_size - dopuszczalny rozmiar wczytywanych plików poniżej 2M 2M i więcej post_max_size - maks. rozmiar danych przesyłanych metodą POST poniżej 8M 8M i więcej default_socket_timeout - czas oczekiwania na przesłanie danych 0 30 http://www.pomoc.joomla.pl Kreator PDF Utworzono 2 March, 2017, 04:51 Pomoc max_execution_time - maksymalny czas wykonywania skryptów 0 30 Niektóre z istotnych i pożądanych zmiennych można ustawić dla konkretnej witryny Joomla, modyfikując ustawienia serwera Apache w pliku .httacces. http://www.pomoc.joomla.pl Kreator PDF Utworzono 2 March, 2017, 04:51