Instalacja Apache, MySQL, PHP

przez | 10 grudnia 2012

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

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 :

php

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 :

mysqltuner

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

tuningprimer

 

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&lt;0,0,IF(PowerOf1024&gt;3,0,PowerOf1024)))+0.4999),
SUBSTR(' KMG',IF(PowerOf1024&lt;0,0,
IF(PowerOf1024&gt;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&lt;0,0,IF(PowerOf1024&gt;3,0,PowerOf1024)))+0.49999),
SUBSTR(' KMG',IF(PowerOf1024&lt;0,0,
IF(PowerOf1024&gt;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 :

php

Wybieramy serwer apache.

Następnie wyskakuje kolejne okno – Konfiguracja pakietu phpmyadmin.

konfiguracja

Zatwierdzamy tak.

Następnie wpisujemy hasła :

hasło

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 :

logowanie

Po instalacji wszystkich pakietów wykonujemy restart serwera apache :

/etc/init.d/apache2 restart

markos
Specjalizuję się w systemach komputerowych Windows oraz Linux. Oprócz wykonywanej pracy w zawodzie, informatyka jest moją pasją.
0 0 vote
Article Rating
Subscribe
Powiadom o
guest
1 Komentarz
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
arek
arek
5 lat temu

Czy mógłbym poprosić o hasło do artykułu:

Zabezpieczony: Instalacja i konfiguracja ZABBIX

pozdrawiam