Przykład instalacyjny oparty na systemie Debian :
Na początku należy skonfigurować połączenie sieciowe i zaktualizować bazę dostępnych pakietów.
Konfiguracja połączenia sieciowego :
Wykonujemy polecenie ifconfig aby wyświetlić aktywne interfejsy sieciowe. Aby wyświetlić aktywne i nieaktywne interfejsy wykonujemy polecenie ifconfig -a.
Sieć konfigurujemy w pliku : /etc/network/interfaces
Używamy do tego celu skryptów lub modyfikujemy plik konfiguracyjny (interfaces) interfejsu sieciowego.
Możemy również posłużyć się poleceniem : ifconfig w celu nadania adresów IP.
Aktualizacja bazy pakietów :
sudo nano /etc/apt/sources.list
Do pliku sources.list, który się znajduje w katalogu /etc/apt dodajemy wpisy :
deb http://ftp.pl.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.pl.debian.org/debian/ stable main contrib non-free
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
deb http://www.deb-multimedia.org stable main non-free
Następnie aktualizujemy listę pakietów :
apt-get update
Należy również zainstalować nowsze wersje pakietów, które są już zainstalowane na komputerze :
apt-get upgrade
Aby zaktualizować cały system wykonujemy :
apt-get dist-upgrade
INSTALACJA SERWERA WWW – APACHE
W konsoli wykonujemy polecenie :
apt-get install apache2
Jak sprawdzić czy serwer Apache został zainstalowany i czy jest uruchomiony ?
Otwieramy przeglądarkę internetową i wpisujemy : http://adres_ip_serwera/
Aby sprawdzić adres serwera IP wykonujemy polecenie ifconfig
W przeglądarce powinien się wyświetlać napis : It works !
Możemy również wykonać polecenie : service apache2 status
Główny plik konfiguracyjny apache : /etc/apache2/apache2.conf
Ważne parametry :
MaxClients – parametr służy do ustawienia maksymalnej ilości żądań jakie może przyjąć w jednym momencie serwer. Jeżeli zostanie wartość przekroczona, połączenie do serwera zostanie odrzucone.
Jak wyliczyć możliwą maksymalną ilość klientów :
MaxClients = Ilość pamięci przeznaczonej dla serwera / rozmiar zajętej pamięci RAM przez proces potomny serwera (2-15 MB RAM)
Ilość pamięci RAM serwera sprawdzamy poleceniem free
Możemy ustalić jednostkę pojemności pamięci :
-b bajty B
-k kilobajty KB
-m megabajty MB
-g gigabajty GB
np. wyświetlenie informacji o pamięci RAM podanej w MB : free -m
Pamięć RAM używaną przez proces możemy sprawdzić wykonując polecenie :
pmap -x PID
Możemy również użyć :
top lub ps
KeepAlive – Możemy zezwolić na obsługę wielu zadań w trakcie jednego połączenia.
KeepAliveTimeout – ustawienie czasu jak długo ma czekać proces na następne żądanie (optymalne ustawienie na 2-4 s.) w ramach jednego połączenia.
MaxKeepAliveRequests – możemy ustawić maksymalną liczbę żądań w ramach jednego połączenia.
Timeout – w tym parametrze określamy limit czasu przeznaczony na obsługę jednego żądania.
Pozostałe pliki i katalogi konfiguracyjne :
/etc/apache2/conf.d
/etc/apache2/mods-enabled/ W tym katalogu znajdują się aktualnie włączone moduły do apache
/etc/apache2/ports.conf W tym pliku konfigurowane są porty apache
Zmianę portu dokonujemy w parametrze Listen.
Domyślnie apache nasłuchuje na porcie 80.
/etc/apache2/sites-enabled/ W tym katalogu znajdują się konfiguracje domen wirtualnych
POLECENIA PRZYDATNE PODCZAS ADMINISTROWANIA SERWEREM APACHE :
/etc/init.d/apache2 reload polecenie pozwala procesom zakończyć aktualnie obsługiwane żądania
/etc/init.d/apache2 restart tym poleceniem resetujemy serwer
apache2ctl -M Sprawdzenie włączonych modułów apache
Katalog z modułami:
/etc/apache2/mods-available
Włączenie modułu:
sudo a2enmod podajemy_tutaj_nazwe_modulu
np. a2enmod usertrack
Wyłączenie modułu :
sudo a2dismod podajemy_tutaj_nazwe_modulu
Tworzenie hostów wirtualnych
1) Przechodzimy do katalogu /var/www .
2) Tworzymy w tym katalogu nowy katalog w którym będzie się znajdować zawartość nowej strony.
Katalog powinien się nazywać tak samo jako adres strony www. Na przykład dla strony o adresie www.joomladebian.pl katalog powinien się nazywać „joomladebian.pl”.
Katalog możemy utworzyć poleceniem :
mkdir joomladebian.pl
Powinniśmy również nadać dla tego katalogu odpowiednie uprawnienia.
Poleceniem : chmod 755 joomladebian.pl/
Do nowego katalogu wrzucamy zawartość strony internetowej.
3) Następnie przechodzimy do /etc/apache2/sites-available
W tym katalogu tworzymy plik o nazwie takiej samej jak katalog strony internetowej.
Poleceniem : nano joomladebian.pl
Przykładowa zawartość pliku :
ServerName joomladebian.pl ServerAlias www.joomladebian.pl ServerAdmin joomladebian@gmail.com DocumentRoot /var/www/joomladebian.pl DirectoryIndex index.html index.php index.htm ErrorLog /var/log/apache2/joomladebian.pl-error.log CustomLog /var/log/apache2/joomladebian.pl-custom.log combined
4) Zapisujemy plik i restartujemy nasz serwer poleceniem :
service apache2 restart
Analogicznie postępujemy przy tworzeniu innej strony internetowej.
(Powtórz kroki od 1 do 4). Na jednym serwerze może się znajdować kilka stron internetowych. Zależy to jeszcze od wydajności serwera.
Należy pamiętać aby ustawić odpowiednie wartości na serwerze DNS.
Strony WWW użytkowników systemu
Aby każdy z użytkowników serwera mógł założyć własną stronę internetową należy mieć włączony moduł userdir.
Moduł włączymy poleceniem :
sudo a2enmod userdir
Następnie każdy z użytkowników musi mieć utworzony katalog public_html w swoim katalogu domowym.
Na przykład użytkownik Marek posiada swój katalog domowy w /home/Marek.
Aby utworzyć katalog public_html wykonujemy polecenie :
sudo mkdir /home/Marek/public_html
Do katalogu public_html wrzucamy zawartość naszej strony.
W przeglądarce internetowej wpisujemy adres :
Zabezpieczanie katalogu lub danej strony hasłem
Czasami chcemy aby naszą stronę lub katalog mogli tylko oglądać uwierzytelnieni użytkownicy.
1) Jeżeli nasza strona została już uruchomiona wystarczy utworzyć nowego użytkownika oraz hasło na serwerze :
wykonujemy :
htpasswd -c -b /etc/apache2/htaccess login haslo
2) Przechodzimy do katalogu w którym się znajduje nasza strona.
Standardowo katalog się znajduje w : /var/www
Tworzymy plik .htaccess o zawartości :
AuthUserFile /etc/apache2/htaccess
AuthName login
AuthType Basic
require valid-user
Jeżeli plik .htaccess utworzymy w głównym katalogu nowej strony to zablokujemy dostęp do całej strony. Jeżeli utworzymy plik .htaccess w podkatalogu to zablokujemy dostęp tylko do tego podkatalogu.
3) Do zawartości pliku /etc/apache2/apache2.conf na końcu dopisujemy :
directory "/var/www/chroniony katalog" Options Indexes FollowSymLinks Multiviews AuthType Basic AuthName "Logowanie" AuthUserFile /etc/apache2/htaccess Require valid-user
//jako „chroniony katalog” podajemy katalog który chcemy chronić hasłem.
4) Resetujemy serwer apache :
service apache2 restart
http://localhost/~Marek aby wyświetlić zawartość katalogu/strony.
OBSŁUGA PHP – INSTALACJA PHP5
apt-get install php5
apt-get install libapache2-mod-php5
apt-get install php-pear
apt-get install php5-mysql
apt-get install php5-suhosin
Po instalacji należy zrestartować serwer apache:
/etc/init.d/apache2 restart
Aby sprawdzić działanie php, tworzymy plik index.php poleceniem:
gedit /var/www/index.php
o zawartości :
<?php phpinfo ();?>
Następnie otwieramy przeglądarkę i wpisujemy jako adres :
http://localhost/index.php
Zawartość strony :
Konfiguracja ustawień PHP :
/etc/php5/apache2/php.ini
W pliku znajdują się różne dyrektywy o różnych wartościach. Dla przykładu podam tylko kilka.
max_execution_time = 30(Zmienna określa w sekundach maksymalny czas wykonywania skryptu)
max_input_time = 60(Parametr definiuje czas jaki ma klient na przesłanie danych do serwera – np. upload pliku)
memory_limit = 12M(Parametr określa limit pamięci dla wykonywanych skryptów na serwerze)
display_errors = On(Parametr odpowiada za wyświetlanie błędów)
display_startup_errors = Offregister_globals = Off
log_errors = On(Parametr ustala, czy błędy będą logowane)
post_max_size = 8M(Parametr określa wielkość danych przesyłanych metodą POST)
file_uploads = On
upload_max_filesize = 2M(Parametr określa maksymalną wielkość wgrywanego pliku)max_file_uploads = 20
Jeżeli przeprowadzano jakieś zmiany w pliku php.ini należy pamiętać o resecie serwera Apache.
INSTALACJA SERWERA MYSQL
apt-get install mysql-server
Wpisujemy hasło administratora, które będzie używane do administracji baz danych. Użytkownikiem jest root.
Aby komputery mogły wyświetlać strony w PHP należy zmienić w pliku konfiguracyjnym PHP my.cnf wartość :
bind-address
Ścieżka do pliku konfiguracyjnego : /etc/mysql/my.cnf
MySQL domyślnie pracuje na porcie 3306.
Optymalizacja serwera MySQL
1) Możemy wykorzystać skrypt mysqltuner.pl, który jest do ściągnięcia z :
https://raw.github.com/major/MySQLTuner-perl/master/mysqltuner.pl
Należy skryptowi nadać prawo wykonania (chmod +x mysqtuner.pl).Skrypt uruchamiamy poleceniem ./mysqltuner.pl
Przykład niezoptymalizowanej bazy :
2) Możemy również posłużyć się skryptem MySQL Tuning Primer Script :
https://launchpad.net/mysql-tuning-primer/trunk/1.6-r1/+download/tuning-primer.sh
Te dwa skrypty podpowiadają nam co należy zmienić w konfiguracji aby MySQL był bardziej zoptymalizowany.
W przypadku używania mechanizmu składowania danych MyISAM aby dobrać odpowiednią wartość dla rozmiaru bufora key_buffer_size należy wykonać zapytanie :
SELECT CONCAT(ROUND(KBS/POWER(1024, IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999), SUBSTR(' KMG',IF(PowerOf1024<0,0, IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_key_buffer_size FROM (SELECT LEAST(POWER(2,32),KBS1) KBS FROM (SELECT SUM(index_length) KBS1 FROM information_schema.tables WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql')) AA ) A, (SELECT 2 PowerOf1024) B;
Parametr key_buffer_size może przyjmować następujące maksymalnie wartości :
Na systemach 32 bitowych – 4GB
Na systemach 64 bitowych maksymalnie – 8GB.
W przypadku używania mechanizmu składowania danych InnoDB aby dobrać odpowiednią wartość dla rozmiaru bufora innodb_buffer_pool_size należy wykonać zapytanie :
SELECT CONCAT(ROUND(KBS/POWER(1024, IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999), SUBSTR(' KMG',IF(PowerOf1024<0,0, IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables WHERE engine='InnoDB') A, (SELECT 2 PowerOf1024) B;
Uzyskamy w ten sposób rekomendowane ustawienia dla InnoDB Buffer Pool.
Pamiętaj o zmianie rozmiaru pliku logowania InnoDB. Rozmiar pliku logowania musi być mniejszy od 4G (4096M).
Aby zmienić rozmiar dodajemy parametr innodb_log_file_size do pliku /etc/mysql/my.cnf.
Wartość innodb_log_file_size musi być mniejsza od 4GB.
Następnie należy zatrzymać serwer MySQL : service mysql stop
oraz skasować pliki logowania ib_log w /var/log/mysql/
Po skasowaniu należy uruchomić serwer : service mysql start
Wyłączenie silnika InnoDB spowoduje już zoptymalizowanie serwera. Ten silnik używa dużo zasobów serwera, zwłaszcza pamięci RAM. Jednak czy warto rezygnować z silnika InnoDB na rzecz RAM ?
Moim zdaniem nie, ponieważ ten silnik jest o wiele bardziej stabilniejszy od MyISAM.
Optymalizacja bazy
Używamy do tego celu narzędzia do naprawy i zoptymalizowania wszystkich baz danych, które się znajdują na serwerze:
mysqlcheck -u user -p –auto-repair –check –optimize –all-databases
Optymalizację należy wykonywać wtedy kiedy mamy najmniejszy ruch na serwerze mysql. Może w nocy 🙂
Same tabele możemy zoptymalizować poleceniem :
optimize table podajemy_nazwe_tabeli;
Warto używać polecenia gdy na bazie często wykonywane są jakieś aktualizacje czy też elementy są usuwane.
Używając tych narzędzi i poleceń zmniejszymy czas reakcji na zapytanie oraz zmniejszymy pojemność bazy danych.
Wykonywanie automatycznych zadań w MySQL
Wykorzystywanie mechanizmu EVENTS. Więcej informacji możecie znaleźć tutaj :
http://dev.mysql.com/doc/refman/5.5/en/create-event.html
Instalacja PHPMYADMIN
Jest to graficzne narzędzie do edycji baz danych.
apt-get install phpmyadmin
Podczas instalacji zostanie wyświetlone okno :
Wybieramy serwer apache.
Następnie wyskakuje kolejne okno – Konfiguracja pakietu phpmyadmin.
Zatwierdzamy tak.
Następnie wpisujemy hasła :
Należy również zainstalować dodatkowe pakiety tj. :
apt-get install libapache2-mod-auth-mysql
apt-get install php5-mysql
Aby sprawdzić czy możemy się zalogować do panelu konfiguracyjnego serwera baz danych wpisujemy w przeglądarce : http://adres_ip_serwera/phpmyadmin/
Powinno się pojawić okno :
Po instalacji wszystkich pakietów wykonujemy restart serwera apache :
/etc/init.d/apache2 restart
Czy mógłbym poprosić o hasło do artykułu:
Zabezpieczony: Instalacja i konfiguracja ZABBIX
pozdrawiam