Redakcja WebInsider.pl zaprasza na WordCamp 2018 Poznań. Poznajmy się w Poznaniu!

Jakiś czas temu przygotowałem poradnik dotyczący przygotowania i konfiguracji serwera WWW (Apache2 + PHP + MySQL + PhpMyAdmin) dla np. serwera VPS opartego na systemie Linux Debian (konkretnie jego wersji przeznaczonej dla Raspberry Pi – Raspbian).

Po statystykach, komentarzach, jak i ilości „linków zwrotnych” widzę, że temat dla wielu z Was istotny – dlatego dziś będzie jego kontynuacja, a dokładniej modyfikacja niektórych aspektów pracy związanych w większości z obsługą plików PHP…

Apache2 MPM-Worker (Worker MPM) + PHP(5)-FPM

Zmiana ta ma głównie (choć nie tylko) na celu przyspieszenie działania bardziej rozbudowanych stron, pisanych w PHP – np. WordPress, i należy niniejszą konfiguracje traktować jako „alternatywną” dla opisanej wcześniej.

Od razu dodam, że pozostałe elementy – np. takie jak MySQL, PhpMyAdmin – pozostają bez zmian, i nawet jak zdecydujecie się na instalację samego serwera Apache2 i PHP wg tego poradnika, resztę możecie instalować i/lub konfigurować tak jak w „starym” poradniku jest to napisane – zwłaszcza, że nie będę dublował treści/informacji.

Instalacja serwera Apache2 + PHP(5)-FPM

Instalację zaczynamy od aktualizacji, po czym:

sudo apt-get install apache2 apache2-utils
sudo apt-get install apache2-mpm-worker
Jeśli macie już zainstalowany serwer Apache2 – instalacja „Apache2 Worker MPM” automatycznie zastąpi „Apache 2 Prefork MPM”

Następnie:

sudo apt-get install php5 php5-fpm php5-imap php5-common php5-curl php5-mcrypt php5-gd

(tu można część modułów odjąć, inne dodać – zależnie od potrzeb)

Raspbian (Raspberry Pi) i libapache2-mod-fastcgi

W przypadku Raspberry Pi i systemu Raspbian (Debian) prawdopodobnie instalacja zostanie przerwana m.in. z powodu braku pakietu „libapache2-mod-fastcgi”, dlatego w powyższej komendzie należy go pominąć:

sudo apt-get install php5 php5-fpm php5-imap php5-common php5-curl php5-mcrypt php5-gd

Modyfikujemy – jeśli jeszcze tak nie macie – plik sources.list zgodnie z tym wpisem, i następnie aktualizujemy system:

sudo apt-get update
sudo apt-get upgrade

 

Następnie:

sudo apt-get install debhelper dpatch libtool cdbs libapr1-dev apache2-threaded-dev

 

I instalujemy „libapache2-mod-fastcgi” ze źródeł:

sudo apt-get -b source libapache-mod-fastcgi
sudo dpkg -i libapache2-mod-fastcgi*.deb

Dalej działamy już standardowo, czyli:

Aktywacja modułu:

sudo a2enmod actions fastcgi alias

Konfiguracja PHP(5)-FPM

Dodajemy obsługę PHP-FPM do wszystkich vHostów (globalnie):

sudo nano /etc/apache2/conf.d/php5-fpm.conf

i wpisujemy:

<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</IfModule>

<IfModule mod_alias.c>
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory /var/www/cgi-bin/>
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</IfModule>

<IfModule mod_actions.c>
Action application/x-httpd-php /cgi-bin/php5
</IfModule>

By uniknąć ew. błędów przy kopiowaniu powyższego kodu możesz pobrać gotowy plik (otwórz, lub prawym klawiszem myszy i „zapisz jako”).

I restart serwera:

sudo service apache2 restart

Można też zrestartować moduł PHP5-FPM:

sudo /etc/init.d/php5-fpm restart

Konfiguracja PHP (php.ini) w tym wariancie znajduje się w pliku:

/etc/php5/fpm/php.ini

Dodatkowy plik konfiguracyjny – czasem i w nim trzeba coś zmienić:

/etc/php5/fpm/pool.d/www.conf

PHP Info – czyli sprawdzamy czy wszystko działa

Jeśli to czysta/nowa instalacja, to można założyć, że jak się wyświetlają strony HTML i PHP to na pewno działa… ;-)

Ale można sprawdzić to bardziej profesjonalnie, w tym celu tworzymy plik „phpinfo.php” o takiej zawartości:

<?php
phpinfo();
?>

I otwieramy go w przeglądarce – powinniśmy zobaczyć stronę z parametrami serwera:

phpinfo_php-fpm

Server API: FPM/FastCGI

Gdzie standardowo (Apache2/PHP-MOD) wygląda to jakoś tak:

phpinfo_apache2-php

Server API: Apache 2.0 Handler

Po teście skasujcie plik – po co kusić los… ;-)

Czy warto?

Można zaoszczędzić trochę pamięci RAM… Na pewno czas wykonywania operacji (głównie chodzi o PHP) będzie niższy o ok 20-50%, a czasem nawet więcej… Ale jeśli macie już postawiony serwer i wszystko działa Wam stabilnie, bez zadyszek – chyba nie ma co, bo zawsze jest ryzyko „usterki” przy tej operacji… Choć „podmiana” nie jest trudna, i jeśli macie chwile czasu… ;-)

Natomiast jeśli dopiero zaczynacie – zdecydowanie warto, tu nawet nie ma co się zastanawiać.

Szybki test – standardowa konfiguracja, rozbudowana strona na WordPressie:

ab_rplb_apache2_php-mod_201407191210

Szybki test – Apache2 MPM-Worker + PHP(5)-FPM, ta sama strona na WordPressie:

ab_rplb_apache2_php-fpm_201407191200

Oba testy dzieli ok 8-10 minut, zostały zrobione na kopii tej strony przeniesionej na testowy serwer VPS (512MB RAM) w DigitalOcean (AMS2). Test był wykonywany z kolejnego testowego serwera – również w DigitalOcean, w tej samej lokalizacji – AMS2.

A dla miłośników „dobrego kina” – wersja wideo poradnika

Nijaki „P” i jego przygody opisane szerzej w komentarzach poniżej skłoniły mnie do nagrania w formie wideo poradnika niniejszego poradnika:

 


Spodobał Ci się artykuł? Zapisz się do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!
Na podany adres e-mail otrzymasz od nas wiadomość e-mail, w której znajdziesz link do potwierdzenia subskrypcji naszego Newslettera. Dzięki temu mamy pewność, że nikt nie dodał Twojego adresu przez przypadek. Jeśli wiadomość nie przyjdzie w ciągu najbliższej godziny (zazwyczaj jest to maksymalnie kilka minut) sprawdź folder SPAM.
Monika ćwiczy przed kongresem ko..., ale dzięki motywowa Divi od Elegant Themes chyba nawet ona da radę...
WebInsider poleca księgowość wFirma
WebInsider korzysta z VPSa w HitMe.pl
WebInsider poleca VPSy DigitalOcean
WebInsider poleca serwis Vindicat
Napisz komentarz
wipl_napisz-komentarz_01Jeśli informacje zawarte na tej stronie okazały się pomocne, możesz nam podziękować zostawiając poniżej swój komentarz.

W tej formie możesz również zadać dodatkowe pytania dotyczące wpisu, na które – w miarę możliwości – spróbujemy Ci odpowiedzieć.
Linki partnerskie
Niektóre z linków na tej stronie to tzw. „linki partnerskie”, co oznacza, że jeśli klikniesz na link i dokonasz wymaganej akcji (np. zakup/rejestracja) możemy otrzymać za to prowizję. Pamiętaj, że polecamy tylko te produkty i usługi, z których sami korzystamy, i uważamy, że są tego na prawdę warte… :-)
Znaki towarowe i nazwy marek
W niektórych wpisach (oraz innych miejscach na stronie) mogą być przedstawione/użyte znaki towarowe i/lub nazwy marek, które stanowią własność intelektualną tych podmiotów, a zostały użyte wyłącznie w celach informacyjnych.
Na WebInsider.pl korzystamy z motywu Extra od Elegant Themes. Zobacz dlaczego...