Apache: Różnice pomiędzy wersjami

Z MoodleDocs
Skocz do:nawigacja, szukaj
m (preparing framework)
 
(done)
 
Linia 1: Linia 1:
When most people refer to '''Apache''' they are talking about the "Apache HTTP Server Project". In fact Apache is really the "Apache Software Foundation" which hosts a long list of projects of which the HTTP server is just one, albeit the best known.
Gdy ludzie odwołują się do '''Apache''' mają na myśli "Apache HTTP Server Project". W rzeczywistości Apache to "Apache Software Foundation" która hostuje długą listę projektów, które używają tego samego - najbardziej znanego - serwera HTTP


The Apache HTTP Server enables web pages to be published on the internet (or an intranet or even on a single test machine). The [[PHP]] scripting language, in which Moodle is developed, is tightly integrated with the Apache HTTP Server. A web server is a required component of a Moodle installation. There are two distinct developments of the Apache HTTP Server, version 1 and version 2. Although version 2 should have replaced version 1, the architectures are so different that they both continue to be supported. Either are fully supported by PHP and Moodle.
Serwer HTTP Apache pozwala na publikowanie stron w internecie (lub intranecie lub nawet pojedynczej maszynie). [[PHP]] jest językiem programowania, w którym rozwijany jest Moodle. PHP jest mocno zintegrowany z Serwerem HTTP Apache. Aby móc zainstalować Moodle potrzebny jest serwer. Istnieją dwie odrębne wersje Serwera HTTP Apache, wersja 1 oraz wersja 2. Pomimo, że werjsa 2 powinna zastąpić wersję 1, obie architektury są tak bardzo różne, że obie gałęzie są równolegle wspierane. Obie działają z PHP i Moodle.


The Apache HTTP Server Project describes itself thus:
Serwer HTTP Apache opisuje siebie następująco:


"The Apache HTTP Server Project is an effort to develop and maintain an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of this project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards.
"Projekt Serwer HTTP Apache dąży do rozwijania i utrzymywania open-source'owego serwera HTTP dla nowoczesnych systemów operacyjnych włączając UNIX i Windows NT. Celem tego projektu jest dostarczenie bezpiecznego, wydajnego serwera, który oferuje usługi HTTP zgodnie z obecnymi standardami HTPP.


Apache has been the most popular web server on the Internet since April 1996. The November 2005 Netcraft Web Server Survey found that more than 70% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined."
Apache jest nieprzerwanie od kwietnia 1996 roku najpopularniejszym serwerem. Ankieta "The November 2005 Netcraft Web Server Survey" udowodniła, że ponad 70% serwerów w sieci pracuje w oparciu o Apache, tak więc ejst on najszerzej wykorzystywaną tego typu aplikacją."


== Installing Apache ==
== Instalacja Apache ==


Usually Apache is installed alongside PHP and [[MySQL]] in a combination known as AMP, see [[Installing AMP]] for details.
Zazwyczaj Apache jest instalowany wraz z PHP oraz [[MySQL]] w połączeniach znanych pod nazwą AMP, zobacz [[Installing AMP]] w celu uzyskania szczegółów.


Debian/Ubuntu:
Debian/Ubuntu:
  apt-get install apache2
  apt-get install apache2


==Performance==
==Wydajność==


'''Caching'''
'''Caching'''


Apache can be tuned to make pages load faster by specifying how the browser should cache the various page elements. How to do this varies slightly between OSes but there are two basic steps
Apache może ustawiony aby przyspieszyć ładowanie stron poprzez wskazanie przeglądarce, jak i co powinna trzymać w cache. Sposób jak tego dokonać zależy poniekąd od systemu operacyjnego lecz są dwa podstawowe kroki


# Install and enable mod_expires - refer to documentation or man pages
# Zainstaluj i włącz mod_expires - zobacz strony pomocy
# Add this code to the virtual server config file within the section for the root directory (or within the .htaccess file if AllowOverrides is On):
# Dodaj ten kod do pliku konfiguracyjnego serwera w sekcji poświęconej katalogowi głównemu (lub do pliku .htaccess jeżeli AllowOverrides jest włączone):
  <IfModule mod_expires.c>
  <IfModule mod_expires.c>
   ExpiresActive On
   ExpiresActive On
Linia 37: Linia 37:
  </IfModule>
  </IfModule>


The effect is to make everything stay in the cache except HTML and XML, which change dynamically. It's possible to gain a several hundred percent decrease in load times this way
Efektem tego jest zatrzymanie w cache wszystkiego, z wyjątkiem HTML oraz XML, które zmieniają się dynamicznie. Dzięki temu możemy obniżyć czas ładowania o kilkaset procent.


More info: [http://www.metaskills.net/blog/heuristics/sysadmin/how-to-control-browser-caching-with-apache-2 www.metaskills.net]
Więcej informacji: [http://www.metaskills.net/blog/heuristics/sysadmin/how-to-control-browser-caching-with-apache-2 www.metaskills.net]


'''Servers'''
'''Serwery'''


Apache serves webpages by spawning new child processes (smaller sub-programs) to deal with each connection. The number of these that you allow to run and to be kept in reserve has a big impact on how fast your server will run. The risk (especially on a server with a small amount of memory, such as a VPS) is that the available RAM will run out and the system will end up using the far slower hard disk as swap memory instead. To prevent this, you need to tell Apache only to have a certain number. Here is a sample set of configuration directives for a VPS server with 128MB of RAM (with up to 384 burstable), which apparently works quite well (more info [http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html here])
Serwery Apache tworzą procesy podrzędne (mniejsze podprogramy) aby obsługiwać każde połączenie. Liczba tych połączeń, którym pozwalasz pracować i tych, które są trzymane w rezerwie ma duży wpływ na  szybkość serwera. Ryzyko (szczególnie na serwerach z małą ilością pamięci, jak VPS) jest takie, że dostępna ilość pamięci RAM się skończy, co doprowadzi do tego, że system będzie używał dużo wolniejszego dysku twardego jako pamięci podręcznej zamiast RAM. Aby temu zapobiec, musisz ustalić odpowiednią konfigurację. Poniżej znajduje się przykładowa konfiguracja dla serwera VPS z 128MB RAM (with up to 384 burstable), który pozornie pracuje całkiem dobrze (więcej informacji [http://www.agnivo.com/tech/vps-mysql-and-apache-optimization-guide-27.html tutaj])


Make a back up of your httpd.conf first. It’s generally found at /etc/httpd/conf/httpd.conf, then open the file with your editor e.g.
Najpierw zrób kopię zapasową pliku httpd.conf. Zazwyczaj znajduje się on w /etc/httpd/conf/httpd.conf, następnie otwórz go używając dowolnego edytora, np:


  nano /etc/httpd/conf/httpd.conf
  nano /etc/httpd/conf/httpd.conf


Then look for these values, which may be spread about a little and change them:
Następnie poszukaj poniższych wartości (mogą być trochę porozrzucane) i zmień je:


  Timeout 200
  Timeout 200
Linia 62: Linia 62:
  HostnameLookups Off
  HostnameLookups Off


If you find that you are running out of memory (type
Jeżeli uważasz, ze skończyły się zasoby pamięci RAM (wpisz


  top
  top


if using Linux and look at the swap figure), just lower some of the numbers. Similary, if you have extra memory, you can afford to raise them a bit. Remember to combine tuning of Apache with tuning of your database app.
jeżeli używasz Linkusa i zobacz na pozycję swap), zmniejsz niektóre z liczb. Podobnie, jeżeli masz dodatkową pamięć - możesz pozwolić na zwiększenie niektórych wartości. Pamiętaj aby pracować nad wydajnością serwer HTTP wraz z jednoczesnym usprawnianiem bazy danych.


==SSL==
==SSL==


If you want your website not to be hackable, you need to enable SSL so that your moodle password cannot be easily read by others as it is transmitted (as normal internet communications normally can be). There are 2 options - generate a self-signed certificate, which stops casual network sniffing, but which can ultimately be compromised with enough effort, or purchase a certificate from a vendor (about $35 per year from the cheap ones). Below are instructions for install of a self-signed certificate.
Jeżeli chcesz dodatkowo zabezpieczyć swoją stronę, musisz włączyć obsługę SSL aby hasła Moodle nie mogły być łatwo przejęte przez obcą osobę podczas ich transmisji. Są dwie opcje - stworzyć osobiście podpisany certyfikat, który zatrzyma przypadkowy sniffing sieciowy, który jednak może być złamany przy odpowiednim wysiłku, lub kupić certyfikat od sprzedawcy (najtańsze około 35$ na rok). Poniżej znajduje się instrukcja dotyczca instalacji samodzielnie podpisanego certyfikatu.


'''Debian and Apache2'''
'''Debian oraz Apache2'''


1. generate a certification:
1. generowanie certyfikatu:
       apache2-ssl-certificate
       apache2-ssl-certificate


for debian etch, apache2-ssl-certificate is no longer available, use make-ssl-cert instead:
dla debiana etch, apache2-ssl-certificate nie jest dostępny, użyj make-ssl-cert zamiast:
           make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
           make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem


2. edit /etc/apache2/ports.conf:
2. edytuj /etc/apache2/ports.conf:
       Listen 80
       Listen 80
       Listen 443
       Listen 443
3. copy /etc/apache2/sites-available/default to /etc/apache2/sites-available/default-ssl, and change /etc/apache2/sites-available/default:
3. skopiuj /etc/apache2/sites-available/default do /etc/apache2/sites-available/default-ssl, i edytuj /etc/apache2/sites-available/default:
       NameVirtualHost *:80
       NameVirtualHost *:80
       <VirtualHost *:80>
       <VirtualHost *:80>
Linia 89: Linia 89:
       </VirtualHost>
       </VirtualHost>


and also /etc/apache2/sites-available/default-ssl:
a także /etc/apache2/sites-available/default-ssl:
       NameVirtualHost *:443
       NameVirtualHost *:443
       <VirtualHost *:443>
       <VirtualHost *:443>
Linia 97: Linia 97:
       ...
       ...
       </VirtualHost>
       </VirtualHost>
4. symbolic link the ssl file:
4. symboliczny link pliku ssl:
       a2ensite default-ssl
       a2ensite default-ssl
5. don't forget to symbolic link the ssl module:
5. nie zapomnij o linku symbolicznym modułu ssl:
       a2enmod ssl
       a2enmod ssl
6. restart apache and test the connection (e.g. https://localhost/):
6. następnie restart apache i sprawdzenie połączenia (np. https://localhost/):
       /etc/init.d/apache2 restart
       /etc/init.d/apache2 restart


[http://edin.no-ip.com/html/?q=ssl_apache2_2_virtualhost_debian_automatically_https_forwarding reference]
[http://edin.no-ip.com/html/?q=ssl_apache2_2_virtualhost_debian_automatically_https_forwarding dodatkowe informacje]


== See also ==
== Zobacz także ==


* [http://httpd.apache.org/ The Apache HTTP Server Project homepage]
* [http://httpd.apache.org/ The Apache HTTP Server Project homepage]
* [http://en.wikipedia.org/wiki/Apache_HTTP_Server Wikipedia article on the Apache HTTP Server]
* [http://pl.wikipedia.org/wiki/Apache_%28serwer%29 artykuł w Wikipedii nt. Apache]




[[Kategoria:Administrator]]
[[Kategoria:Administrator]]
[[Kategoria:Deweloper]]
[[Kategoria:Deweloper]]
[[en:Apache]]

Aktualna wersja na dzień 16:05, 26 gru 2007

Gdy ludzie odwołują się do Apache mają na myśli "Apache HTTP Server Project". W rzeczywistości Apache to "Apache Software Foundation" która hostuje długą listę projektów, które używają tego samego - najbardziej znanego - serwera HTTP

Serwer HTTP Apache pozwala na publikowanie stron w internecie (lub intranecie lub nawet pojedynczej maszynie). PHP jest językiem programowania, w którym rozwijany jest Moodle. PHP jest mocno zintegrowany z Serwerem HTTP Apache. Aby móc zainstalować Moodle potrzebny jest serwer. Istnieją dwie odrębne wersje Serwera HTTP Apache, wersja 1 oraz wersja 2. Pomimo, że werjsa 2 powinna zastąpić wersję 1, obie architektury są tak bardzo różne, że obie gałęzie są równolegle wspierane. Obie działają z PHP i Moodle.

Serwer HTTP Apache opisuje siebie następująco:

"Projekt Serwer HTTP Apache dąży do rozwijania i utrzymywania open-source'owego serwera HTTP dla nowoczesnych systemów operacyjnych włączając UNIX i Windows NT. Celem tego projektu jest dostarczenie bezpiecznego, wydajnego serwera, który oferuje usługi HTTP zgodnie z obecnymi standardami HTPP.

Apache jest nieprzerwanie od kwietnia 1996 roku najpopularniejszym serwerem. Ankieta "The November 2005 Netcraft Web Server Survey" udowodniła, że ponad 70% serwerów w sieci pracuje w oparciu o Apache, tak więc ejst on najszerzej wykorzystywaną tego typu aplikacją."

Instalacja Apache

Zazwyczaj Apache jest instalowany wraz z PHP oraz MySQL w połączeniach znanych pod nazwą AMP, zobacz Installing AMP w celu uzyskania szczegółów.

Debian/Ubuntu:

apt-get install apache2

Wydajność

Caching

Apache może ustawiony aby przyspieszyć ładowanie stron poprzez wskazanie przeglądarce, jak i co powinna trzymać w cache. Sposób jak tego dokonać zależy poniekąd od systemu operacyjnego lecz są dwa podstawowe kroki

  1. Zainstaluj i włącz mod_expires - zobacz strony pomocy
  2. Dodaj ten kod do pliku konfiguracyjnego serwera w sekcji poświęconej katalogowi głównemu (lub do pliku .htaccess jeżeli AllowOverrides jest włączone):
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 1 seconds"
 ExpiresByType text/html "access plus 1 seconds"
 ExpiresByType image/gif "access plus 120 minutes"
 ExpiresByType image/jpeg "access plus 120 minutes"
 ExpiresByType image/png "access plus 120 minutes"
 ExpiresByType text/css "access plus 60 minutes"
 ExpiresByType text/javascript "access plus 60 minutes"
 ExpiresByType application/x-javascript "access plus 60 minutes"
 ExpiresByType text/xml "access plus 1 seconds"
</IfModule>

Efektem tego jest zatrzymanie w cache wszystkiego, z wyjątkiem HTML oraz XML, które zmieniają się dynamicznie. Dzięki temu możemy obniżyć czas ładowania o kilkaset procent.

Więcej informacji: www.metaskills.net

Serwery

Serwery Apache tworzą procesy podrzędne (mniejsze podprogramy) aby obsługiwać każde połączenie. Liczba tych połączeń, którym pozwalasz pracować i tych, które są trzymane w rezerwie ma duży wpływ na szybkość serwera. Ryzyko (szczególnie na serwerach z małą ilością pamięci, jak VPS) jest takie, że dostępna ilość pamięci RAM się skończy, co doprowadzi do tego, że system będzie używał dużo wolniejszego dysku twardego jako pamięci podręcznej zamiast RAM. Aby temu zapobiec, musisz ustalić odpowiednią konfigurację. Poniżej znajduje się przykładowa konfiguracja dla serwera VPS z 128MB RAM (with up to 384 burstable), który pozornie pracuje całkiem dobrze (więcej informacji tutaj)

Najpierw zrób kopię zapasową pliku httpd.conf. Zazwyczaj znajduje się on w /etc/httpd/conf/httpd.conf, następnie otwórz go używając dowolnego edytora, np:

nano /etc/httpd/conf/httpd.conf

Następnie poszukaj poniższych wartości (mogą być trochę porozrzucane) i zmień je:

Timeout 200
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 3
MinSpareServers 5
MaxSpareServers 15
StartServers 5
MaxClients 20
MaxRequestsPerChild 2000
HostnameLookups Off

Jeżeli uważasz, ze skończyły się zasoby pamięci RAM (wpisz

top

jeżeli używasz Linkusa i zobacz na pozycję swap), zmniejsz niektóre z liczb. Podobnie, jeżeli masz dodatkową pamięć - możesz pozwolić na zwiększenie niektórych wartości. Pamiętaj aby pracować nad wydajnością serwer HTTP wraz z jednoczesnym usprawnianiem bazy danych.

SSL

Jeżeli chcesz dodatkowo zabezpieczyć swoją stronę, musisz włączyć obsługę SSL aby hasła Moodle nie mogły być łatwo przejęte przez obcą osobę podczas ich transmisji. Są dwie opcje - stworzyć osobiście podpisany certyfikat, który zatrzyma przypadkowy sniffing sieciowy, który jednak może być złamany przy odpowiednim wysiłku, lub kupić certyfikat od sprzedawcy (najtańsze około 35$ na rok). Poniżej znajduje się instrukcja dotyczca instalacji samodzielnie podpisanego certyfikatu.

Debian oraz Apache2

1. generowanie certyfikatu:

     apache2-ssl-certificate

dla debiana etch, apache2-ssl-certificate nie jest dostępny, użyj make-ssl-cert zamiast:

         make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

2. edytuj /etc/apache2/ports.conf:

     Listen 80
     Listen 443

3. skopiuj /etc/apache2/sites-available/default do /etc/apache2/sites-available/default-ssl, i edytuj /etc/apache2/sites-available/default:

     NameVirtualHost *:80
     <VirtualHost *:80>
     ...
     </VirtualHost>

a także /etc/apache2/sites-available/default-ssl:

     NameVirtualHost *:443
     <VirtualHost *:443>
     ...
             SSLEngine on
             SSLCertificateFile /etc/apache2/ssl/apache.pem
     ...
     </VirtualHost>

4. symboliczny link pliku ssl:

     a2ensite default-ssl

5. nie zapomnij o linku symbolicznym modułu ssl:

     a2enmod ssl

6. następnie restart apache i sprawdzenie połączenia (np. https://localhost/):

     /etc/init.d/apache2 restart

dodatkowe informacje

Zobacz także