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

Podobne dokumenty