![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chciałbym się zapytać bardziej doświadczonych kolegów w jaki sposób używają takiego połączenia. Pierwsza możliwość jaką znalazłem, to użycie dyrektywy FastCgiExternalServer i przekierowanie przez nie wywołań na fpm nasłuchujące na jakimś porcie lub sockecie. Problem w tym, że nie udało mi się zmusić apacha do przekierowania na fpm tylko rządań o pliki .php, i uparcie wysyła wszystko na interpereter php. Nie muszę chyba wspominać że nie o to chodziło. Mimo kombinacji takich jak opisanych na http://devrandom.pl/blog/2009/05/09/apache...cgi-spawn-fcgi/ (nieistniejący w systemie plików handler) nie udało mi się tego zmusić do poprawnej pracy. Druga metoda jest opisana na np: http://www.cyberciti.biz/tips/rhel-centos-...figuration.html Tworzomy tutaj plik z wywołaniem php_fpm jako wykonywalny skrypt basha i skorzystanie z klasycznego przekierowania jako cgi. To działa, ale czy nie tracę na tym wydajości? Wydaje mi się że po to była idea zdemonizowania php i łączenia się do niego przez socket albo port, żeby teraz wracać z powrotem do wykonywalnego pliku. Niestety musze użyć apache, z nginx działa to bezproblemowo, ale nic na to nie poradzę. Czy macie może jakieś swoje doświadczenia w tej kwestii? Może da się jakoś zmusić apache żeby działał prawidłowo z FastCgiExternalServer ? EDIT: Wpakowanie FastCgiExternalServer do bolku files wybierającego tylko pliki php skutuje błedem: FastCgiExternalServer not allowed here Problem dawno rozwiązany, trzeba było skorzystać z "wirtualnego" handlera cgi-bin w postaci nieistniejącego pliku, podeśle linka jak to wygrzebie, w każdym razie zasada działania była troche inna niż to rozwiązanie z http://devrandom.pl Ten post edytował elektrrrus 13.02.2011, 11:03:33 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Pozwolę sobie odświeżyć temat, gdyż od 2 dni krążę po googlach w poszukiwaniu rozwiązania tego właśnie tematu. A kolejne tutoriale nie sprawdzają się w mojej sytuacji. Apache 2.2 na debianie 2.6.26-1-amd64. I na tym multisite drupal. Moduły do apache konfigurowane w /etc/apache2/modules-enabled/ a virtual hosty w /etc/apache2/sites-enabled/ I nie mogę dojść jak ma być skonfigurowany moduł mod_FastCGI w /etc/apache2/modules-enagled/fastcgi.conf i fpm w /etc/php5/fpm/php-fpm.conf plus ewentualne wpisy w plikach do virtual host, żeby to działało. Próbuję takich rzeczy jak: http://blog.danguer.com/2011/10/10/install...pm-and-apache2/ http://zeldor.biz/2011/03/apache2-and-php5-fpm-combination/ http://alexcabal.com/installing-apache-mod...erver-maverick/ Na oficjalnej stronie fpm dokumentacji brak, piszą coś o integracji z php i że na stronie php powinna być dokumentacja. Na stronie php tylko opis dyrektyw. Bardzo możliwe że któryś z powyższych linków przedstawia dobre rozwiązanie tylko ja coś po drodze nie tak zrobiłem. Jeśli ktoś miał do czynienia z taką konfiguracją, to bardzo proszę o pomoc. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
php-fpm jest banalnie prosty w konfiguracji. Jeśli go skompilujesz, jedyną rzeczą, jakiej potrzebujesz, to binarka php-fpm.
Potem konfigurujesz odpowiednio pule i startujesz demona (czyli php-fpm, bo działa on niezależnie). Masz już respondera do FCGI. W konfiguracji Apache pozostaje już tylko nakierować na respondera (gniazdem, czy adresem IP + portem). Pokaż, co masz teraz, wtedy coś powiemy. Aha, i zastanów się, na co Ci taka kobyła jak Apache. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
To może zacznijmy od początku. Przywróciłem sobie mój testowy vps do stanu zanim zacząłem mieszać, czyli do apache z mpm-prefork (kobylasty apache dlatego że nie ja o tym decyduję
![]() I teraz powinienem sobie zapodać coś w stylu: Kod apt-get install apache2-mpm-worker libapache2-mod-fastcgi php5-fpm Zgadza się ? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ekhm, może jestem staroświecki, ale ja takie rzeczy kompiluję.
Wolę: Kod cd /usr/ports/www/nginx make config install clean cd /usr/ports/lang/php5 make config install clean ale to przecież nie BSD... ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Gdzie tam staroświecki
![]() A więc do rzeczy. Po zainstalowaniu powyższych pakietów mam: mods-enabled/fastcgi.conf Kod <IfModule mod_fastcgi.c> AddHandler fastcgi-script .fcgi #FastCgiWrapper /usr/lib/apache2/suexec FastCgiIpcDir /var/lib/apache2/fastcgi </IfModule> /etc/php5/fpm/php-fpm.conf Kod [global] pid = /var/run/php5-fpm.pid error_log = /var/log/php5-fpm.log include=/etc/php5/fpm/pool.d/*.conf /etc/php5/fpm/pool.d/www.conf Kod [www]
listen = 127.0.0.1:9000 user = www-data group = www-data pm = dynamic pm.max_children = 10 pm.start_servers = 4 pm.min_spare_servers = 2 pm.max_spare_servers = 6 chdir = / |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
No ok, ale gdzie podajesz w konfiguracji Apache lokalizację repondera?
Demon FPM wystartowany? -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
demonik sobie pomyka:
Kod 8060 ? 00:00:13 php5-fpm 8061 ? 00:00:00 php5-fpm 8064 ? 00:00:00 php5-fpm 8067 ? 00:00:00 php5-fpm 8071 ? 00:00:00 php5-fpm No a "lokalizacje respondera" dopiero muszę ustawić. Na początek może coś takiego, ale to pewnie jeszcze nie wszystko, bo nie działa ;> Tylko czy w ogóle w dobrym kierunku idę ? Kod <IfModule mod_fastcgi.c> #AddHandler fastcgi-script .fcgi AddHandler fcgi:/var/run/php-fpm.socket .php .php5 #FastCgiWrapper /usr/lib/apache2/suexec FastCgiIpcDir /var/lib/apache2/fastcgi </IfModule> i w zmieniłem /etc/php5/fpm/pool.d/www.conf z portu na socketa Kod listen = /var/run/php-fpm.socket
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Tylko czy w ogóle w dobrym kierunku idę ? Nie trać swojego i naszego czasu. Oberwałbyś od klawiatury, gdybyś to już przetestował? To Tobie ma zależeć na rozwiązaniu problemu i to Ty masz być najbardziej zaangażowanym. Apache już od dawna nie używam na produkcji, więc musisz sam przetestować; co do FPM, to no problem, ale z Apache musisz trochę samodzielnie podziałać. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie trać swojego i naszego czasu. Oberwałbyś od klawiatury, gdybyś to już przetestował? To Tobie ma zależeć na rozwiązaniu problemu i to Ty masz być najbardziej zaangażowanym. Apache już od dawna nie używam na produkcji, więc musisz sam przetestować; co do FPM, to no problem, ale z Apache musisz trochę samodzielnie podziałać. Może nie dotycztałeś jak wpierwszym poście napisałem że testowałem różne konfiguracje. I wszystko co piszę jest testowane. Jeżeli nie potrafisz pomóc z apachem to szkoda, bo problem jest właśnie w skierowaniu apacha/fastcgi na fpm a nie z samym fpm. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Może nie dotycztałeś jak wpierwszym poście napisałem że testowałem różne konfiguracje. To pokaż je. To, że testowałeś, to nie znaczy, że czegoś nie przeoczyłeś. A FastCGI dla Apache jest upierdliwe; kiedyś to postawiłem, "nigdy więcej". Skopiowałbym swoją konfigurację, ale na tamtym serwerze już jest coś innego, poza tym - wówczas nie było PHP-FPM. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 5.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wygląda na to że przy kolejnym podejściu udało mi się uzyskać działające rozwiązanie łącząc zawartość dwóch stron:
http://personal.x-istence.com/post/2010/11...and-php-php-fpm Stąd wziąłem konfigurację fastcgi: Kod <IfModule mod_fastcgi.c> Alias /php5.fcgi /var/www/fastcgi/php5.fcgi FastCGIExternalServer /var/www/fastcgi/php5.fcgi -flush -host 127.0.0.1:9000 AddType application/x-httpd-fastphp5 .php Action application/x-httpd-fastphp5 /php5.fcgi <Directory "/var/www/fastcgi/"> Order deny,allow Deny from all <Files "php5.fcgi"> Order allow,deny Allow from all </Files> </Directory> </IfModule> http://blog.danguer.com/2011/10/10/install...pm-and-apache2/ A stąd poradę o rewrite rule (z racji że używam drupala, bez tego miałem pętle): Kod RewriteRule ^fastcgi/php5.fcgi - [L,NC] Teraz czeka mnie sprawdzenie czy na serwerze produkcyjnym gdzie do konfiguracji dochodzą virtual hosty będzie to śmigać. Dam znać jakie będą tego efekty, ale to pewnie po nowym roku dopiero. A jeśli chodzi o fpm, to czy faktycznie warto używać unixowego socketa ? (listen = /var/run/php-fpm.socket) Na, jednej ze stron spotkałem się ze stwierdzeniem że jest to szybsze rozwiązanie. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Pewnie, że szybsze, bo ustanowienie połączenia TCP jest "trochę" zasobożerne. Ale dlaczego, to zapraszam do lektury podstaw sieci komputerowych. [;
Tylko że sockety mają jedną wadę - responder musi być na tej samej maszynie, co usługa kliencka. W Twoim przypadku jest to jednak bez znaczenia. [; -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.04.2025 - 00:54 |