Apache tutoriale dla początkujących
Co To jest Apache?
Apache to niezwykły kawałek oprogramowania aplikacyjnego. Jest to najczęściej używana aplikacja serwera www na świecie z ponad 50% udziałem w rynku komercyjnych serwerów internetowych. Apache jest najczęściej używaną aplikacją serwera www w systemach operacyjnych typu Unix, ale może być używany na prawie wszystkich platformach, takich jak Windows, OS X, OS/2 itp. Słowo „Apache” zostało zaczerpnięte od nazwy indiańskiego plemienia „Apache”, słynącego z umiejętności walki i tworzenia strategii.
jest to modułowa, oparta na procesach aplikacja serwera www, która tworzy nowy wątek przy każdym jednoczesnym połączeniu. Obsługuje wiele funkcji; wiele z nich jest kompilowanych jako oddzielne moduły i rozszerza jego podstawową funkcjonalność i może zapewnić wszystko, od obsługi języka programowania po stronie serwera po mechanizm uwierzytelniania. Hosting wirtualny jest jedną z takich funkcji, która pozwala pojedynczemu serwerowi Apache obsługiwać wiele różnych stron internetowych.
jak zainstalować Apache
istnieje wiele sposobów instalacji pakietu lub aplikacji. Poniżej znajdują się zapisy –
- jedną z cech tej aplikacji internetowej open source jest to, że każdy może stworzyć instalator według własnego środowiska. Pozwoliło to różnym dostawcom, takim jak Debian, Red Hat, FreeBSD, SUSE itp. aby dostosować lokalizację pliku i konfigurację apache z uwzględnieniem innych zainstalowanych aplikacji i podstawowego systemu operacyjnego.
- Oprócz zainstalowania go z instalatora opartego na dostawcy, zawsze istnieje możliwość zbudowania i zainstalowania go z kodu źródłowego. Instalacja Apache z pliku źródłowego jest niezależna od platformy & działa dla wszystkich systemów operacyjnych.
serwer apache jest aplikacją modułową, w której administrator może wybrać żądaną funkcjonalność i zainstalować różne moduły zgodnie z jego wymaganiami.
wszystkie moduły mogą być kompilowane jako dynamiczne Obiekty współdzielone (DSO to plik obiektowy, który może być współdzielony przez wiele aplikacji podczas ich wykonywania), który istnieje oddzielnie od głównego pliku apache. Podejście DSO jest wysoce zalecane, sprawia, że zadanie dodawania/usuwania / aktualizacji modułów z konfiguracji serwerów jest bardzo proste.
zainstaluj Apache:Linux Platform
Na systemach opartych na Red Hat Lub rpm
Jeśli używasz rpm (RedHat Package Manager jest narzędziem do instalowania aplikacji na systemach Linux) opartej na dystrybucji Linuksa tj. Red Hat, Fedora, CentOs, Suse, możesz zainstalować tę aplikację za pomocą menedżera pakietów określonego przez dostawcę lub bezpośrednio budując plik rpm z dostępnego źródła tarball.
możesz zainstalować Apache za pomocą domyślnego menedżera pakietów dostępnego na wszystkich dystrybucjach opartych na Red Hat, takich jak CentOs, Red Hat i Fedora.
# yum install httpd
plik źródłowy apache można przekształcić do pliku rpm za pomocą następującego polecenia.
# rpmbuild -tb httpd-2.4.x.tar.bz2
do utworzenia na serwerze jest wymagane zainstalowanie pakietu-devel .plik rpm ze źródła.
po przekonwertowaniu pliku źródłowego na Instalator rpm możesz użyć następującego polecenia do zainstalowania Apache.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
Po instalacji serwer nie uruchamia się automatycznie, aby uruchomić usługę, musisz użyć dowolnego z poniższych poleceń na Fedorze, CentOs lub Red Hat.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
zainstaluj Apache ze źródła
instalacja apache ze źródła wymaga zainstalowania pakietu –devel na twoim serwerze. .Możesz znaleźć najnowszą dostępną wersję Apache, możesz ją pobrać tutaj . Po pobraniu pliku źródłowego przenieś go do folderu / usr / local / src.
cd /usr/local/src gzip -d httpd-2.2.26.tar.gz tar xvf httpd-2.2.26.tar httpd-2.2.26
aby zobaczyć wszystkie opcje konfiguracji dostępne dla Apache, możesz użyć ./ configure-help opcja. Najczęstszą opcją konfiguracji jest-prefix={install directory name}.
./configure --help./configure –prefix=/usr/local/apache –enable-so make make install
powyższy przykład pokazuje kompilację Apache w katalogu/usr/local / apache z możliwością DSO. Opcja-enable-so, może ładować wymagane moduły do apache w czasie działania za pośrednictwem mechanizmu DSO, zamiast wymagać rekompilacji.
Po zakończeniu instalacji możesz przeglądać domyślną stronę serwerów internetowych za pomocą ulubionej przeglądarki. Jeśli firewall jest włączony na serwerze, musisz zrobić wyjątek dla Portu 80 w firewallu systemu operacyjnego. Możesz użyć następującego polecenia, aby otworzyć port 80.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
możesz zobaczyć domyślny ekran powitalny Apache2, przeglądając adres IP serwera.
Co To jest wirtualny Host?
serwer WWW Apache może hostować wiele stron internetowych na tym samym serwerze. Nie potrzebujesz oddzielnej maszyny serwerowej i oprogramowania apache dla każdej witryny. Można to osiągnąć za pomocą koncepcji wirtualnego hosta lub VHost.
każda domena, którą chcesz hostować na swoim serwerze WWW, będzie miała osobny wpis w pliku konfiguracyjnym apache.
typy wirtualnego hosta Apache
- wirtualny host oparty na nazwie
- wirtualny host oparty na adresie lub IP i.
host wirtualny oparty na nazwie
Hosting wirtualny oparty na nazwie służy do hostowania wielu wirtualnych witryn na jednym adresie IP.
aby skonfigurować wirtualny hosting oparty na nazwie, musisz ustawić adres IP, na którym będziesz otrzymywać żądania Apache dla wszystkich pożądanych stron internetowych. Możesz to zrobić za pomocą dyrektywy NameVirutalHost w konfiguracji apache tj. httpd.conf / apache2.plik conf.
przykład wirtualnego hosta Apache:
NameVirtualHost *:80<VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>
możesz dodać dowolną liczbę wirtualnych hostów, zgodnie z wymaganiami. Możesz sprawdzić swoje pliki konfiguracyjne sieci Web za pomocą:
#httpd –tSyntax OK
Jeśli plik konfiguracyjny ma nieprawidłową składnię, spowoduje to błąd
# httpd -tSyntax error on line 978 of /etc/httpd/conf/httpd.conf:Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration
wirtualny host oparty na IP
aby skonfigurować wirtualny host oparty na IP, Potrzebujesz więcej niż jednego adresu IP skonfigurowanego na serwerze. Tak więc liczba vhost apache będzie zależeć odliczba adresu IP skonfigurowanego na serwerze. Jeśli twój serwer ma 10 adresów IP, możesz utworzyć wirtualne hosty oparte na 10 IP.
w powyższym diagramie dwie strony internetowe example1.com oraz example2.com zostały przypisane różne adresy IP i używają wirtualnego hostingu opartego na IP.
Listen 192.168.0.100:80<VirtualHost 192.168.10.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.10.109:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>
co Apache potrzebuje do uruchomienia pliku Php?
uruchamianie plików Php na Apache wymaga włączonego mod_php na serwerze. Pozwala Apache na interpretację.Plików Php. Posiada funkcje obsługi Php, które interpretują kod Php w apache i wysyłają kod HTML na serwer WWW.
Jeśli mod_php jest włączony na twoim serwerze, będziesz miał plik o nazwie php.conf w / etc / httpd / conf.d / katalog. Możesz to również sprawdzić za pomocą:
httpd -M | grep "php5_module"
wyjście będzie podobne do:
obsługa Php w Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpis jest najstarszym programem obsługi PHP, czyni PHP częścią Apache i nie wywołuje żadnego zewnętrznego procesu PHP. Ten moduł jest instalowany domyślnie w każdym repozytorium dystrybucji Linuksa, więc włączenie / wyłączenie tego modułu jest bardzo proste.
Jeśli używasz FastCGI jako programu obsługi PHP, możesz ustawić wiele wersji PHP, które będą używane przez różne konta na twoim serwerze.
FastCGI czyli mod_fastcgi jest rozszerzeniem mod_fcgid, gdzie jako mod_fcgid jest wysokowydajną alternatywą dla CGI czyli mod_cgi . Uruchamia wystarczającą liczbę instancji CGI do obsługi równoczesnych żądań internetowych. Wykorzystuje również suexec do obsługi różnych użytkowników z ich własnymi instancjami PHP i poprawia bezpieczeństwo sieci.
uruchamianie plików ruby na Apache wymaga włączenia mod_ruby. Apache może również obsługiwać pliki ruby poprzez FastCGI. Można używać wielu wersji Rubiego przy pomocy mod_fcgid tj. FastCGI.
Możesz również zainstalować Apache passenger i skonfigurować Apache do obsługi stron ruby.
(Phusion Passenger znany również jako „passenger” jest darmowym modułem serwera WWW, który jest zaprojektowany do integracji z Apache i Nginx)
kroki aby zainstalować mod_ruby na twoim serwerze –
cd /tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6/ ./configure.rb --with-apr-includes=/usr/include/apr-1makemake install
jak uruchomić Ruby z Apache
musimy dodać moduł mod_ruby do konfiguracji Apache tj./etc/httpd / conf.d / ruby.conf i dodać następujący wiersz.
LoadModule ruby_module modules/mod_ruby.
Jeśli chcesz włączyć lub wyłączyć te moduły, musisz edytować plik konfiguracyjny apache i komentować lub odkomentować te moduły, jeśli serwer WWW jest już skompilowany z tymi modułami.
Jak zabezpieczyć serwer WWW Apache
zabezpieczenie serwera www jest bardzo ważne, oznacza to, że pozwala innym zobaczyć tylko zamierzone informacje& Ochrona danych i ograniczenie dostępu.
są to typowe rzeczy, które zwiększają bezpieczeństwo serwerów Apache.
1) ukrywanie wersji Apache i informacji o systemie operacyjnym:
Apache wyświetla swoją wersję i nazwę systemu operacyjnego w błędach, jak pokazano na poniższym zrzucie ekranu.
haker może użyć tych informacji do przeprowadzenia ataku przy użyciu publicznie dostępnych luk w danej wersji serwera lub systemu operacyjnego.
w celu uniemożliwienia webserverowi Apache ’ a odtworzenia tych informacji, musimy zmodyfikować
opcję „podpis serwera” dostępną w pliku konfiguracyjnym apache. Domyślnie jest on „włączony”, musimy ustawić go”wyłączony”.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
ustawiliśmy również „ServerTokens Prod”, który mówi serwerowi sieci Web, aby zwracał tylko apache i tłumił główną i mniejszą wersję systemu operacyjnego
po modyfikacji pliku konfiguracyjnego, musisz ponownie uruchomić / przeładować serwer sieciowy apache, aby był skuteczny.
service httpd restart
2) Wyłącz listę katalogów
Jeśli katalog główny dokumentu nie ma pliku indeksu, domyślnie serwer WWW apache wyświetli całą zawartość katalogu głównego dokumentu.
Ta funkcja może być wyłączona dla określonego katalogu poprzez „options directive” dostępne w pliku konfiguracyjnym Apache.
<Directory /var/www/html> Options -Indexes</Directory>
3) wyłączanie niepotrzebnych modułów
dobrą praktyką jest wyłączanie wszystkich niepotrzebnych modułów, które nie są używane. Możesz zobaczyć listę włączonych modułów dostępnych w pliku konfiguracyjnym apache –
#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)
wiele z wymienionych modułów może być wyłączonych, takich jak: mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, ponieważ nie są one używane przez żadne produkcyjne Serwery WWW.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
Po skomentowaniu modułu zapisz plik.
Uruchom ponownie usługi apache za pomocą następującego polecenia.
/etc/init.d/httpd restart
4) Ograniczanie dostępu do plików poza katalogiem głównym www
Jeśli chcesz się upewnić, że pliki znajdujące się poza katalogiem głównym www nie są dostępne, musisz upewnić się, że katalog jest ograniczony za pomocą opcji „Zezwól” i „odrzuć” w pliku konfiguracyjnym serwera www.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
Po ograniczeniu dostępu poza głównym katalogiem www directoy, nie będziesz mógł uzyskać dostępu do żadnego pliku znajdującego się w innym folderze na twoim serwerze WWW, otrzymasz kod zwrotny 404.
5) używanie mod_evasive do odparcia ataku DoS
Jeśli chcesz chronić swój serwer WWW przed Dos (tj. odmową usługi), musisz włączyć moduł mod_evasive. Jest to moduł innej firmy, który wykrywa atak Dos i uniemożliwia atakowi zadanie tyle obrażeń, ile zrobiłby, gdyby pozostał na swoim kursie. Można go pobrać tutaj.
Pobierz powyższy plik
6) Korzystanie z mod_security w celu zwiększenia bezpieczeństwa apache
Ten moduł działa jako zapora sieciowa dla Apache i pozwala monitorować ruch w czasie rzeczywistym. Zapobiega to również atakom brute force na serwer WWW. Moduł mod_security może być zainstalowany z domyślnym menedżerem pakietów twojej dystrybucji.
7) ograniczenie rozmiaru żądania
Apache nie ma żadnych ograniczeń co do całkowitego rozmiaru żądania http, które mogłyby prowadzić do ataku DoS. Możesz ograniczyć rozmiar żądania dyrektywy Apache „LimitRequestBody” za pomocą tagu katalogu. 2147483647 bajtów) zgodnie z wymaganiami.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Format dziennika Apache
dzienniki Apache zawierają szczegółowe informacje, które pomagają wykryć typowe problemy z serwerem.
aby utworzyć dzienniki dostępu, mod_log_configmodule musi być włączony.
trzy dyrektywy dostępne w pliku konfiguracyjnym apache tj.
- TransferLog: Tworzenie pliku dziennika.
- LogFormat : określanie niestandardowego formatu.
- CustomLog: Tworzenie i formatowanie pliku dziennika.dyrektywa
TransferLog jest dostępna w pliku konfiguracyjnym apache i obraca pliki dziennika wirtualnego hosta zgodnie z ustawionymi parametrami.
<VirtualHost www.example.com> ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it. DocumentRoot /usr/www/example/httpd/htdocs/ ServerName www.example.com ServerAlias example.com www.example ErrorLog /usr/www/example/httpd/logs/error_log TransferLog/usr/www/example/httpd/logs/accesslog CustomLog /usr/www/example/httpd/logs/accesslog combined</VirtualHost>
dwa typy formatu dziennika Apache
- wspólny Format dziennika
- połączony Format dziennika.
możesz je włączyć edytując plik konfiguracyjny apache np.conf (Debian / ubuntu) lub httpd.plik conf (rpm based systems)
wspólny format dziennika
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
wspólny Dziennik wygenerowany przez Apache
client denied by server configuration: /export/home/live/ap/htdocs/test
połączony Format dziennika
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
tutaj,
- %h To zdalny host
- %l to tożsamość użytkownika określona przez identd
- %u to nazwa użytkownika określona przez uwierzytelnienie http
- %t to czas, w którym serwer zakończył przetwarzanie żądania.
- %R jest linią żądania od klienta. („GET/HTTP/1.0”)
- %>s jest kodem stanu wysyłanym z serwera do klienta (500, 404 itd.)
- %b to Rozmiar odpowiedzi do Klienta (w bajtach)
- Referer to strona, która łączy się z tym adresem URL.
- User-agent jest ciągiem identyfikującym przeglądarkę.
połączony Dziennik generowany przez Apache:
199.187.122.91 - - "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"
własny dziennik tworzy osobny plik dziennika dla każdego wirtualnego hosta na serwerze. Musi być określony w sekcji virtual host w pliku konfiguracyjnym.
Możesz zobaczyć poniżej wspomnianą konfigurację wirtualnego hosta, wygenerowany dziennik będzie niestandardowy dla tego wirtualnego hosta i format zostanie połączony.
Skonfiguruj swój pierwszy produkcyjny Serwer Www
1. Aby mieć uruchomiony serwer produkcyjny, potrzebujesz dedykowanego węzła (instancja fizyczna/wirtualna lub chmurowa) z systemem Linux/Unix, Windows, MacOS itp.
2. Serwer WWW musi mieć bezpośrednie połączenie sieciowe i skonfigurowany na nim adres staticIP.
3. Musi mieć wszystkie moduły wymagane do uruchamiania stron internetowych. Jeśli serwer WWW przetwarza strony PHP, musi mieć włączony moduł PHP.
- musi również mieć dobrą aplikację antywirusową skonfigurowaną i działającą w celu zabezpieczenia serwera www przed atakami złośliwego oprogramowania lub wirusów. Potrzebny jest również mechanizm regularnej aktualizacji skonfigurowanej aplikacji antywirusowej/antywirusowej bez ręcznej interwencji, Aby uzyskać z nich maksymalne korzyści.
- Jeśli masz setki domen do hostowania na swoim serwerze WWW, musisz wdrożyć ograniczenia dotyczące kwot systemu plików dla każdej domeny, liczby baz danych, które każda domena może utworzyć, liczby kont e-mail na domenę itp.
- Jeśli twój serwer WWW został skonfigurowany dla współdzielonych usług hostingowych, użytkownicy na twoim serwerze WWW muszą być ograniczeni. Współdzielony użytkownik hostingu powinien mieć najmniej uprawnień użytkownika, aby nie uszkodzić ważnych plików & złamać cały serwer. Apache nie zapewnia żadnej takiej funkcjonalności i potrzebuje różnych aplikacji innych firm, dostosowywania systemu operacyjnego, aby to osiągnąć.
- Jeśli dodajesz nową domenę na swoim serwerze WWW, wymaga ona edycji setek plików konfiguracyjnych, aby włączyć wszystkie funkcje dla dodanej domeny.
- Jeśli jedna z hostowanych domen wymaga innego ustawienia PHP niż pozostałe domeny, wdrożenie tego w core Apache Web server jest bardzo złożone i wymaga dostosowania serwera www w dużym stopniu.
- produkcyjny serwer WWW potrzebuje zapory do blokowania niechcianego ruchu, który może spowodować duże obciążenie serwera. Implementacja reguł IPTABLE z wiersza poleceń jest bardzo złożona. Do napisania skutecznych reguł zapory sieciowej blokujących niechciany ruch potrzebuje wiedzy z zakresu podstawowego środowiska Linux/Unix. IPTABLE bazuje na module netfilter; jest to firewall na poziomie systemu operacyjnego, który pozwala administratorowi na tworzenie reguł dla ruchu przychodzącego/wychodzącego na serwerze.
- produkcyjny serwer WWW wymaga kilku różnych aplikacji, takich jak poczta e-mail, FTP do przesyłania plików, System nazw domen dla zaparkowanych domen. Zarządzanie wszystkimi tymi aplikacjami na rdzeniowym systemie Linux/Unix wymaga wiedzy na temat odpowiednich technologii.
można więc powiedzieć, że zarządzanie serwerem WWW dla wielu domen jest bardzo złożonym zadaniem i wymaga edycji setek plików konfiguracyjnych, dostosowując każdą aplikację do pożądanego rezultatu. Rozwiązywanie problemów z dowolną konfiguracją miss będzie bardzo trudne dla początkujących.
rozwiązanie wykorzystujące Cpanel lub podobne oprogramowanie
cPanel zapewnia graficzny sposób zarządzania serwerem WWW. Ma na celu zapewnienie masowych usług hostingowych, które są łatwe w użyciu i konfiguracji. cPanel zmniejszył bariery techniczne wejścia do zarządzania hostingiem i serwerem WWW. Ułatwia skomplikowane zadania, zapewnia wiele użytecznych i łatwych w użyciu interfejsów internetowych, które wykonują typowe zadania administracyjne wymagane do obsługi serwera www.
cPanel kompiluje własną wersję oprogramowania.
Jeśli musisz przekompilować swój serwer WWW tj. apache na normalnej platformie Linuksowej, musisz ręcznie wybrać / wyszukać wymagany moduł. cPanel zapewnia funkcjonalność easyapache, która jest metodą kompilacji serwera www opartą na skryptach.
zapewnia nie tylko Usługi internetowe, ale także pocztę, DNS, FTP i wiele innych usług, które są wymagane dla Twojej aplikacji internetowej.
zadanie, które wymaga wiedzy na temat podstawowego hostingu opartego na Linuksie/Unixie, takie jak instalacja SSL, rekompilacja Apache z różnymi modułami PHP, aktualizacja zabezpieczeń internetowych, konfigurowanie skutecznych reguł IPTABLE, Dodawanie użytkowników ftp, tworzenie kont pocztowych dla każdej domeny, skanowanie katalogu głównego dokumentu za pomocą programu antywirusowego i tworzenie baz danych są łatwe do wykonania dzięki cPanel.
zawiera wiele skryptów, które naprawiają, instalują i rozwiązują typowe zadania administracyjne.
zapewnia funkcję tworzenia kopii zapasowych i przywracania, eliminując potrzebę ręcznego kopiowania plików do magazynu kopii zapasowych. Jeśli tworzysz kopię zapasową domeny, cPanel utworzy plik tar, który będzie zawierał folder główny dokumentu, konta e-mail i wiadomości e-mail, konta ftp, bazy danych, rekordy DNS i inne aplikacje.
zapewnia również solidną dokumentację i jest bardzo dużą społecznością użytkowników, w której można dyskutować i rozwiązywać swoje problemy.
można więc powiedzieć, że cPanel to najlepsza aplikacja do zarządzania serwerem WWW z wymaganymi funkcjami. Zapewnia łatwy w użyciu interfejs do zarządzania domeną oraz mechanizm pozwalający uniknąć złożoności zarządzania core Web Server.
istnieje wiele konkurencyjnych produktów do cPanel jak Plesk, ISPConfig, Ajenti, Kloxo, otwarty Panel, Zpanel itp.