Apache

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
(Inne polecenia dla serwera apache)
 
Linia 1: Linia 1:
 
[[Category:Serwer]]
 
[[Category:Serwer]]
 
== Apache ==  
 
== Apache ==  
== Serwer httpd apache ==
 
 
 
'''Apache''' jest oprogramowaniem służącym do realizacji zapytań protokołu http. Kod pakietu jak i sama aplikacja jest dostępna na licencji Apache License i jest w pełni darmowa.
 
'''Apache''' jest oprogramowaniem służącym do realizacji zapytań protokołu http. Kod pakietu jak i sama aplikacja jest dostępna na licencji Apache License i jest w pełni darmowa.
 
== Instalacja ==
 
== Instalacja ==
Aby zainstalować serwer apacje w wersji 2+ należy wydać polecenie
+
Aby zainstalować serwer apache 2+ najlepiej pobrać jego najnowszą stabilną wersję i wykonać samodzielną kompilację. W większości dystrybucji można wykorzystać gotowy pakiet który jest już wstępnie skonfigurowany. Przykładowo w CentOS(i innych dystrybucjach które pochodzą od RH) należy wydać polecenie
 
  yum install http*
 
  yum install http*
 
 
lub
 
lub
 
  yum groupinstall "Web Server"
 
  yum groupinstall "Web Server"
 +
w Debianie czy ubuntu wydamy polecenie
 +
apt-get install apache2
  
Aby była możliwość używania bezpiecznego protokołu ''https'', należy doinstalować moduł ''mod_ssl''
+
Aby była możliwość używania bezpiecznego protokołu ''https'', w CentOS należy doinstalować moduł ''mod_ssl''  
 
  yum install mod_ssl
 
  yum install mod_ssl
 +
w Debianie należy go tylko uaktywnić tworząc odpowiednie dowiązania symboliczne
 +
ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled/
 +
ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled/
  
Po zainstalowaniu pakietów możemy włączyć serwer za pomocą kilku różnych poleceń
+
Po zainstalowaniu pakietów możemy włączyć serwer za pomocą kilku różnych poleceń w CentOS
 
  /etc/init.d/httpd start
 
  /etc/init.d/httpd start
  
Linia 20: Linia 22:
 
  apachectl start
 
  apachectl start
  
to samo dotyczy się wykonywania operacji restartu sprawdzania statusu czy zatrzymywania serwera, polecenia przedstawiam poniżej
+
natomiast w Debianie serwer wystartował po jego instalacji my musimy tylko go zrestartować
zatrzymywanie serwera
+
  /etc/init.d/apache2 restart
apachectl stop
+
podobnie wygląda restart w CentOS, polecenia przedstawione są poniżej
  /etc/init.d/httpd stop
+
service httpd stop
+
  
 
restartowanie serwera
 
restartowanie serwera
Linia 30: Linia 30:
 
  /etc/init.d/httpd restart
 
  /etc/init.d/httpd restart
 
  service httpd restart
 
  service httpd restart
 +
 +
zatrzymywanie serwera w CentOS
 +
apachectl stop
 +
/etc/init.d/httpd stop
 +
service httpd stop
 +
zatrzymanie serwra w Debianie
 +
/etc/init.d/apache2 stop
  
 
sprawdzanie statusu
 
sprawdzanie statusu
  
  apachectl status/etc/init.d/httpd status service httpd status  
+
  apachectl status
 +
/etc/init.d/httpd status  
 +
service httpd status  
  
 
Istnieje również możliwość przeładowania konfiguracji apach'a bez jego zatrzymywania, uczynimy to za pomocą polecenia
 
Istnieje również możliwość przeładowania konfiguracji apach'a bez jego zatrzymywania, uczynimy to za pomocą polecenia
 
  apachectl reload
 
  apachectl reload
 
  /etc/init.d/httpd reload
 
  /etc/init.d/httpd reload
  service httpd reload  
+
  service httpd reload
 +
 
 
== Inne polecenia dla serwera '''apache''' ==
 
== Inne polecenia dla serwera '''apache''' ==
Możliwość sprawdzenia plików konfiguracyjnych serwera
+
Możliwość sprawdzenia plików konfiguracyjnych serwera w CentOS
 
  httpd -t
 
  httpd -t
  
Linia 52: Linia 62:
 
  httpd -l
 
  httpd -l
  
Aby zobaczyć wszystkie polecenia poczytaj strone man. Możesz ją przeczytać za pomocą polecenia
+
Pamiętając że w Debianie pakiet nazywa się apache2 polecenia przyjmą postać
 +
apache2 -t
 +
 
 +
lub
 +
apache2 -S
 +
 
 +
wyświetlenie parametrów z jakimi został zainstalowany apache
 +
apache2 -V
 +
 
 +
lista zainstalowanych modułów
 +
apache2 -l
 +
Aby zobaczyć wszystkie polecenia poczytaj stronę podręcznika man dla serwera Apache. Możesz ją wyświetlić za pomocą polecenia man nazwa serwera czyli w CentOS
 
  man httpd
 
  man httpd
 +
 +
lub
 +
 +
man apache2
 +
 +
w Debianie
 +
 
== Konfiguracja serwera apache ==
 
== Konfiguracja serwera apache ==
 
Serwer '''apache''' potrafi działać w trzech trybach '''prefork''', '''worker''' oraz '''event''' używając mechanizmu, tzw MPM (''Multi-Processing Modules''). W sytemach red hatowych domyślnie działa w trybie prefork.  
 
Serwer '''apache''' potrafi działać w trzech trybach '''prefork''', '''worker''' oraz '''event''' używając mechanizmu, tzw MPM (''Multi-Processing Modules''). W sytemach red hatowych domyślnie działa w trybie prefork.  
  
* '''prefork''' domyślny tryb, najmniej awaryjny lecz zużywający najwięcej pamięci. * worker charakteryzuje się obsługą żądania za pomocą osobnych wątków procesora, jest szybszy niż prefork, jednak jest bardziej podatny na awarie, jest njawydajniejszy gdy używa się go na komputerach wieloprocesorowych. Nie powinno się go używać do serwowania stron opartych na php. * event jest trybem eksperymentalnym.  
+
* '''prefork''' domyślny tryb, najmniej awaryjny lecz zużywający najwięcej pamięci.  
 +
* '''worker''' charakteryzuje się obsługą żądania za pomocą osobnych wątków procesora, jest szybszy niż prefork, jednak jest bardziej podatny na awarie, jest njawydajniejszy gdy używa się go na komputerach wieloprocesorowych. Nie powinno się go używać do serwowania stron opartych na php.
 +
* '''event''' jest trybem eksperymentalnym.  
  
Aby zmienić tryb pracy serwera należy dokonać zmian w pliku /etc/sysconfig/httpd i zrestartować serwer.
+
Aby zmienić tryb pracy serwera należy dokonać zmian w pliku ''/etc/sysconfig/httpd'' i zrestartować serwer.
# Configuration file for the httpd service.
+
# Configuration file for the httpd service.
#
+
#
# The default processing model (MPM) is the process-based
+
# The default processing model (MPM) is the process-based
# 'prefork' model. A thread-based model, 'worker', is also
+
# 'prefork' model. A thread-based model, 'worker', is also
# available, but does not work with some modules (such as PHP).
+
# available, but does not work with some modules (such as PHP).
# The service must be stopped before changing this variable.
+
# The service must be stopped before changing this variable.
#
+
#
#HTTPD=/usr/sbin/httpd.worker
+
#HTTPD=/usr/sbin/httpd.worker
#
+
#
# To pass additional options (for instance, -D definitions) to the
+
# To pass additional options (for instance, -D definitions) to the
# httpd binary at startup, set OPTIONS here.
+
# httpd binary at startup, set OPTIONS here.
#
+
#
#OPTIONS=
+
#OPTIONS=
#
+
#
# By default, the httpd process is started in the C locale; to
+
# By default, the httpd process is started in the C locale; to
# change the locale in which the server runs, the HTTPD_LANG
+
# change the locale in which the server runs, the HTTPD_LANG
# variable can be set.
+
# variable can be set.
#
+
#
#HTTPD_LANG=C
+
#HTTPD_LANG=C
  
Apach przetrzymuje wszystkie pliki konfiguracyjne w pliku /etc/httpd, głównym plikiem konfiguracyjnym jest /etc/httpd/conf/httpd.conf. Natomiast logi przechowywane są w katalogu /var/log/httpd/.5. Opcje pliku konfiguracyjnego httpd.confServerTokens opcja określa jak skale szczegółowości wyświetlanych informacji jeśi pojawi się błąd . Domyślną wartości jest Min, inne wartości to OS, Prod, Major, Minor, Min, FullServerRoot opcja wskazuje na miejsce przechowywania plików konfiguracyjnych serweraTimeout domyślnie 120, określa czas obsługi żądaniaKeepAlive wartości on lub off opcja powoduje włączenie lub wyłączenie obsługi stałych połączeńMaxKeepAliveRequests limit stałych połączeń, wartość 0 określa brak limitówKeepAliveTimeout czas po upływie którego połączenie zostanie rozłączone, określa się w sekundachStartServers ilość pod procesów, które mogą obsługiwać żądania, zawsze +1MinSpareServers liczba minimalna wolnych pod procesówMaxSpareServers maksymalna liczba pod procesów, zawsze musi być o jeden większe niż MinSpareServersServerLimit maksymalny limit procesów serwera max 20000MaxClients określenie limitu obsługi jednoczesnych żądań, jeśli jest ich więcej to pozostałe czekają na zwolnienie się miejscaMaxRequestsPerChild określa limit obsługi żądań przez jeden pod procesMinSpareThreads minimalna ilość wątków obsługujących inne żądaniaMaxSpareThreads maksymalna ilość wątków obsługujących inne żądaniaThgreadsPerChild liczba wątków przypisanych do każdego pod procesu serweraListen opcja ustawia port oraz adres ip na jakim nasłuchuje serwerLoadModules ładowanie dodakowych modułówInclude dołącza zawartość innego plikuUser określa właściciela procesów serweraGroup określa grupę procesów serweraServerAdmin adres email administratora stronyServerName nazwa hosta + port, nazwa sluży do szybkiego określania adresu serwera.UseCanonicalName włącz/wyłącz on/off, definiuje, w jaki sposób httpd obsługuje URL. Gdy opcja ustawiona na on, używana jest nazwa z ServerName. Jeżeli opcja jest ustawiona na off, używana jest nazwa pochodząca z zapytania klienta.DocumentRoot ścieżka do katalogu z plikami strony wwwOptions dodatkowe opcje udostępnionej stronyAllowOverride umożliwia użycie pliku .htaccessOrder ustawia kolejność rozpatrywania poleceń Allow oraz DenyAllow hosty, które mają dostęp do zasobówDeny hosty, które nie mają dostępu do zasobówUserDir ścieżka do katalogów stron www użytkowników systemuUserDir ścieżka do katalogów stron www użytkowników systemuDirectoryIndex określa główną strone serwera, która jako pierwsza będzie się wyświetlaćAccessFileName domyślnie plik .htaccess, który zawiera uprawnienia dla żądanego kataloguDefaultType określa domyślne typy plikówMIMEMagicFile określanie typu pliku na podstawie jego zawartościHostNameLookups rozwiązywanie nazw hostów na adresy ipErrorLog ścieżka do plików z błędamiLogLevel ustawia szczegółowość zbieranych informacjiLogFormat opcja pozwalająca określenie jakie informacje mają się zbierać w logachCustomLog opcja odpowiedzialna za stworzenie pliku z logiem w odpowiednim formacieServerSignature ustawia podpis serwera na stronach błędówAlias określa ścieżkę kataloguIndexOptions opcja umożliwia okeślenie typów plików jakie są listowane dla DirectoryIndexAddIconByEncoding przypisuje ikony plikom na podstawie ich kodowania MIMEAddIconByType przypisuje ikony na podstawie ich typuAddIcon przpisuje ikony na podstawie ich rozszerzeniaDefaultIcon określa domyślną ikonę dla nierozpoznanych ikonHeaderName ścieżka do pliku HEADERIndexIgnore określa które pliki mają być ignorowane przy generowaniuindeksu stronyAddLanguage rozszerzeia dla plików językowychLanguagePriority określa domyślne języki jeśli żadne nie zostały wybraneAddDefaultCharset kodowanie plików stronyAddType zmienia pliki o danym rozszerzeniu do typu MIMEAddOutputFilter umożliwia plików o danym rozszerzeniu do określonego filtraBrowserMatch umożliwia sprecyzowanie odpowiedzi dla różnych przeglądarek
+
'''Apache''' przetrzymuje wszystkie pliki konfiguracyjne w pliku ''/etc/httpd'', głównym plikiem konfiguracyjnym jest ''/etc/httpd/conf/httpd.conf''. Natomiast logi przechowywane są w katalogu ''/var/log/httpd/''.
  
 +
=== Opcje pliku konfiguracyjnego httpd.conf ===
 +
 +
*'''ServerTokens''' opcja określa jak skale szczegółowości wyświetlanych informacji jeśi pojawi się błąd . Domyślną wartości jest Min, inne wartości to OS, Prod, Major, Minor, Min, Full
 +
 +
*'''ServerRoot''' opcja wskazuje na miejsce przechowywania plików konfiguracyjnych serwera
 +
 +
*'''Timeout''' domyślnie 120, określa czas obsługi żądania
 +
 +
*'''KeepAlive''' wartości on lub off opcja powoduje włączenie lub wyłączenie obsługi stałych połączeń
 +
 +
*'''MaxKeepAliveRequests''' limit stałych połączeń, wartość 0 określa brak limitów
 +
 +
*'''KeepAliveTimeout''' czas po upływie którego połączenie zostanie rozłączone, określa się w sekundach
 +
 +
*'''StartServers''' ilość pod procesów, które mogą obsługiwać żądania, zawsze +1
 +
 +
*'''MinSpareServers''' liczba minimalna wolnych pod procesów
 +
 +
*'''MaxSpareServers''' maksymalna liczba pod procesów, zawsze musi być o jeden większe niż MinSpareServers
 +
 +
*'''ServerLimit''' maksymalny limit procesów serwera max 20000
 +
 +
*'''MaxClients''' określenie limitu obsługi jednoczesnych żądań, jeśli jest ich więcej to pozostałe czekają na zwolnienie się miejsca
 +
 +
*'''MaxRequestsPerChild''' określa limit obsługi żądań przez jeden pod proces
 +
 +
*'''MinSpareThreads''' minimalna ilość wątków obsługujących inne żądania
 +
 +
*'''MaxSpareThreads''' maksymalna ilość wątków obsługujących inne żądania
 +
 +
*'''ThgreadsPerChild''' liczba wątków przypisanych do każdego pod procesu serwera
 +
 +
*'''Listen''' opcja ustawia port oraz adres ip na jakim nasłuchuje serwer
 +
 +
*'''LoadModules''' ładowanie dodakowych modułów
 +
 +
*'''Include''' dołącza zawartość innego pliku
 +
 +
*'''User''' określa właściciela procesów serwera
 +
 +
*'''Group''' określa grupę procesów serwera
 +
 +
*'''ServerAdmin''' adres email administratora strony
 +
 +
*'''ServerName''' nazwa hosta + port, nazwa sluży do szybkiego określania adresu serwera.
 +
 +
*'''UseCanonicalName''' włącz/wyłącz on/off, definiuje, w jaki sposób httpd obsługuje URL. Gdy opcja ustawiona na on, używana jest nazwa z ServerName. Jeżeli opcja jest ustawiona na off, używana jest nazwa pochodząca z zapytania klienta.
 +
 +
*'''DocumentRoot''' ścieżka do katalogu z plikami strony www
 +
 +
*'''Options''' dodatkowe opcje udostępnionej strony
 +
 +
*'''AllowOverride''' umożliwia użycie pliku .htaccess
 +
 +
*'''Order''' ustawia kolejność rozpatrywania poleceń Allow oraz Deny
 +
 +
*'''Allow''' hosty, które mają dostęp do zasobów
 +
 +
*'''Deny''' hosty, które nie mają dostępu do zasobów
 +
 +
*'''UserDir''' ścieżka do katalogów stron www użytkowników systemu
 +
 +
*'''DirectoryIndex''' określa główną strone serwera, która jako pierwsza będzie się wyświetlać
 +
 +
*'''AccessFileName''' domyślnie plik .htaccess, który zawiera uprawnienia dla żądanego katalogu
 +
 +
*'''DefaultType''' określa domyślne typy plików
 +
 +
*'''MIMEMagicFile''' określanie typu pliku na podstawie jego zawartości
 +
 +
*'''HostNameLookups''' rozwiązywanie nazw hostów na adresy ip
 +
 +
*'''ErrorLog''' ścieżka do plików z błędami
 +
 +
*'''LogLevel''' ustawia szczegółowość zbieranych informacji
 +
 +
*'''LogFormat''' opcja pozwalająca określenie jakie informacje mają się zbierać w logach
 +
 +
*'''CustomLog''' opcja odpowiedzialna za stworzenie pliku z logiem w odpowiednim formacie
 +
 +
*'''ServerSignature''' ustawia podpis serwera na stronach błędów
 +
 +
*'''Alias''' określa ścieżkę katalogu
 +
 +
*'''IndexOptions''' opcja umożliwia okeślenie typów plików jakie są listowane dla DirectoryIndex
 +
 +
*'''AddIconByEncoding''' przypisuje ikony plikom na podstawie ich kodowania MIME
 +
 +
*'''AddIconByType''' przypisuje ikony na podstawie ich typu
 +
 +
*'''AddIcon''' przpisuje ikony na podstawie ich rozszerzenia
 +
 +
*'''DefaultIcon''' określa domyślną ikonę dla nierozpoznanych ikon
 +
 +
*'''HeaderName''' ścieżka do pliku HEADER
 +
 +
*'''IndexIgnore''' określa które pliki mają być ignorowane przy generowaniuindeksu strony
 +
 +
*'''AddLanguage''' rozszerzeia dla plików językowych
 +
 +
*'''LanguagePriority''' określa domyślne języki jeśli żadne nie zostały wybrane
 +
 +
*'''AddDefaultCharset''' kodowanie plików strony
 +
 +
*'''AddType''' zmienia pliki o danym rozszerzeniu do typu MIME
 +
 +
*'''AddOutputFilter''' umożliwia plików o danym rozszerzeniu do określonego filtra
 +
 +
*'''BrowserMatch''' umożliwia sprecyzowanie odpowiedzi dla różnych przeglądarek
 +
 +
=== Opcje dla serwerów virtualnych ===
 +
*'''NameVirtualHost''' określenie adresów ip dla virtualnych hostów
 +
 +
*'''ServerAdmin''' ustawia adres email dla zdefiniowanego virtualnego serwera
 +
 +
*'''DocumentRoot''' ustawia główny katalog gdzie będą przechowywane pliki stron www dla danego hosta
 +
 +
*'''ServerName''' ścieżka url dla wirtualnego hosta
 +
 +
*'''ErrorLog''' określa ścieżkę do pliku z logami błędów dla wirtualnego hosta
 +
 +
*'''CustomLog''' ścieżka do dodatkowych plików z logami
 +
 +
== Statystyki serwera ==
  
6. Opcje dla serwerów virtualnych NameVirtualHost określenie adresów ip dla virtualnych hostówServerAdmin ustawia adres email dla zdefiniowanego virtualnego serweraDocumentRoot ustawia główny katalog gdzie będą przechowywane pliki stron www dla danego hostaServerName ścieżka url dla wirtualnego hostaErrorLog określa ścieżkę do pliku z logami błędów dla wirtualnego hostaCustomLog ścieżka do dodatkowych plików z logami
 
7. Statystyki serwera
 
 
Aby odblokować statystyki serwera (server-info oraz server-status) należy odhaszować:
 
Aby odblokować statystyki serwera (server-info oraz server-status) należy odhaszować:
SetHandler server-info
+
SetHandler server-info
Order deny,allow
+
Order deny,allow
Deny from all
+
Deny from all
Allow from .example.com
+
Allow from .example.com
Allow from 127.0.0.0/8
+
Allow from 127.0.0.0/8
  
 
lub
 
lub
MSetHandler server-status
+
MSetHandler server-status
Order deny,allow
+
Order deny,allow
Deny from all
+
Deny from all
Allow from .example.com
+
Allow from .example.com
Allow from 127.0.0.1/8
+
Allow from 127.0.0.1/8
8. Prywatne strony użytkowników
+
 
Aby włączyć prywatne strony użytkowników należy odpowiednio skonfigurować poniższe linijki głównego pliku konfiguracyjnego
+
== Prywatne strony użytkowników ==
UserDir /home/*/public_html
+
 
#
+
Aby włączyć prywatne strony użytkowników należy odpowiednio skonfigurować poniższe linijki głównego pliku konfiguracyjnego UserDir /home/*/public_html  
# Control access to UserDir directories. The following is an example
+
#
# for a site where these directories are restricted to read-only.
+
# Control access to UserDir directories. The following is an example
#
+
# for a site where these directories are restricted to read-only.
AllowOverride FileInfo AuthConfig Limit
+
#
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
+
AllowOverride FileInfo AuthConfig LimitOptions MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
+
Order allow,deny
Allow from all
+
Allow from all
Order deny,allow
+
Order deny,allow
Deny from all
+
Deny from all
 +
 
  
Należy określić odpowiednie ścieżki do katalogów, zadbać o to aby te katalogi istniały i miały odpowiednie prawa dostępu(użytkownik prawo do wszystkiego, reszta przynajmniej do czytania). Takie strony będą widoczne w adresie http://twoje_ip/~user
+
Należy określić odpowiednie ścieżki do katalogów, zadbać o to aby te katalogi istniały i miały odpowiednie prawa dostępu(użytkownik prawo do wszystkiego, reszta przynajmniej do czytania). Takie strony będą widoczne w adresie http://twoje_ip/~user<br />
 +
<br /><google1 style="4"></google1>

Aktualna wersja na dzień 07:53, 6 lip 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych