Skocz do zawartości
Zaloguj się, aby obserwować  
GyniO

Nginx + php5-fpm - skąd i jak.

Polecane posty

Witam, ma może ktoś link do poradnika jak zainstalować i skonfigurować nginx'a i php5-fpm? W necie znalazłem sporo poradników, problem w tym, że php5-fpm instalowali z repozytorium, a co znajdę poradnik to link od sources.list nie działa lub nie zawiera paczki php5-fpm.

 

Obecnie zainstalowałem nginxa 0.8.5.3.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Kamikadze

Może idiotyczne ale zrobiłeś update repek?

 

update/upgrade

 

???

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Może idiotyczne ale zrobiłeś update repek?

 

update/upgrade

 

???

 

Tak, nic to nie daje, szukałem nawet za pomocą aptitude search też nic nie było.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

cd php-5.3.x
svn co http://svn.php.net/repository/php/php-src/trunk/sapi/fpm sapi/fpm
./buildconf --force
./configure --enable-fpm ...your other configure options, etc...
make && make install

 

Niby się robi, ale nie jestem tak zaawansowanym użytkownikiem debiana by to zainstalować do końca.

Dlatego szukam jakiegoś poradnika od A do Z

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To w takim razie zapraszam na:

http://it-max.pl/wik...P_5.3_z_php-fpm

 

 

Ten opis nie jest już aktualny - od wersji 5.3.3 php-fpm jest już dostarczany razem z PHP, nie trzeba samodzielnie patchować, a od 5.3.4 nie korzysta z libevent.

 

@GyniO

Ogólnie kompilacja sprowadza się do dodania opcji --enable-fpm do configure

 

Przykład, który należy traktować jedynie jako sugestię (części rozszerzeń możesz nie potrzebować, możesz chcieć zmienić prefix):

 

z usera w katalogu ze źródłami:
$ ./configure --prefix=/usr/local/php5.3 --enable-fpm --with-pgsql=shared \
--with-zlib=shared --enable-dba=shared --enable-bcmath=shared --with-bz2=shared --enable-calendar=shared \
--with-curl=shared --enable-exif=shared --enable-ftp=shared --with-gd=shared --with-gettext=shared \
--enable-mbstring=shared --with-mcrypt=shared --with-mhash=shared --with-mysql=shared --with-mysqli=shared \
--with-openssl=shared --enable-pcntl=shared --with-pdo_mysql=shared --with-pgsql=shared --with-pdo_pgsql=shared \
--enable-shmop=shared --enable-soap=shared --enable-sockets=shared --with-xsl=shared --with-xmlrpc=shared \
--enable-wddx=shared --enable-zip=shared --enable-fileinfo=shared --with-jpeg-dir --with-png-dir --with-zlib-dir \
--with-freetype-dir --enable-sqlite-utf8 --with-libxml-dir
$ make

z roota (chociaż z innym prefixem to i z nieuprzywilejowanego użytkownika można byłoby to zainstalować):
# make install

 

Jeżeli przy konfiguracji pojawią się błędy typu "nie ma pliku cośtam.h" to musisz doinstalować odpowiednie paczki z nagłówkami. W jakiej paczce jest dany plik to możesz sprawdzić na http://packages.debian.org

 

Po zainstalowaniu manager procesów będzie w /usr/local/php5.3/sbin/php-fpm,

w /usr/local/php5.3/etc/php-fpm.conf.default jest przykładowy plik konfiguracyjny. Zmień nazwę tego konfiga, pozmieniaj ścieżki, uruchom php-fpm z usera na prawach którego chcesz serwować skrypty PHP. Rady są ogólnikowe, ale jak będziesz robił krok po kroku z jakiegoś idiotoodpornego tutoriala to niczego się nie nauczysz.

Jak skonfigurować nginxa pod PHP znajdziesz na wiki nginxa.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

megi - mam teraz problemy z ścieżkami o ile dobrze kojarzę..

 

./configure: line 15664: ac_fn_c_try_run: command not found

./configure: line 15678: 5: Bad file descriptor

./configure: line 15679: 6: Bad file descriptor

./configure: line 15681: 5: Bad file descriptor

./configure: line 15682: 6: Bad file descriptor

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Po co bawić się w kompilowanie jeżeli najnowsza wersja jest w repozytorium dotdeb ?

 

Lenny repo:

deb http://packages.dotdeb.org oldstable all

deb-src http://packages.dotdeb.org oldstable all

Klucz:

wget http://www.dotdeb.org/dotdeb.gpg

cat dotdeb.gpg | apt-key add -

 

Dodaj repo do /etc/apt/sources.list po czym przed wykonaniem update załaduj powyższy key. Wklep aptitude update && aptitude install php5-fpm i tyle :)

Edytowano przez HyperHost - Support (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bo dotdeb jest kiepski.

Stabilność ich paczek ma dużo do życzenia. A kompilacja php jest przecież dziecinnie prosta i w ten sposób idealnie dostosujesz wszystko do swoich wymagań.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

malu

Czy faktycznie paczki z dotdeb są niestabilne? Tego nie wiem.

Ale jestem pewien że autorowi kompilacja sprawia kłopot. Dlatego zaproponowałem mu takie rozwiązanie które w 100 % jest dla niego wykonalne.

 

Co do tej niestabilności, mógłbym prosić o jakieś źródła skąd te informacje masz? Sam jestem ciekaw.

Edytowano przez HyperHost - Support (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Na razie kombinuje nad kompilacją, jeżeli nie dam rady to będę kombinował nad paczkami.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

megi - mam teraz problemy z ścieżkami o ile dobrze kojarzę..

 

Kompilujesz świeże źródła, czy już coś tam walczyłeś według tych nieaktualnych opisów? Jeżeli to drugie to usuń to i rozpakuj od nowa. Ten błąd związany jest z wersją autoconfa (było o tym w tym opisie zalinkowanym przez Kamikadze). Jeżeli po uruchomieniu na świeżych źródłach nadal go masz to zrób tak, jak było w tym opisie (akapit "Przygotowanie autoconf i autoheader"). U mnie się nie pojawia, ale ja mam starego Debiana.

 

 

Odnośnie wyższości kompilacji ze źródeł nad gotowymi paczkami (lub odwrotnie) to zgadzam się z malu, że samodzielna kompilacja daje dużą swobodę. Dla mnie admin, który nie potrafi czegoś skompilować ze źródeł jest upośledzony, ale nie każdy musi mieć zacięcie administratorskie. Jeżeli GyniO chcesz mieć PHP ale nie walczyć z kompilacją to instaluj z paczek jak radzą koledzy.

 

@malu - a wyobrażasz sobie jak On to petem będzie aktualizował?

 

Tak samo jak zainstalował :> W najprostszym przypadku configure i make może wrzucić do pliku i później tylko ten plik uruchomić.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok poszło, przy make mam taki problem:

 

/zend_closures.lo Zend/zend_float.lo Zend/zend_objects.lo Zend/zend_object_handlers.lo Zend/zend_objects_API.lo Zend/zend_default_classes.lo Zend/zend_execute.lo -lcrypt -lexslt -lcrypt -lmcrypt -lltdl -lfreetype -lpng -lz -lcurl -lz -lrt -lm -ldl -lnsl -lrt -lxml2 -lssl -lcrypto -lcurl -lxml2 -lxml2 -lcrypt -lxml2 -lxml2 -lxml2 -lxslt -lxml2 -lcrypt -o sapi/fpm/php-fpm

/usr/bin/ld: cannot find -lltdl

collect2: ld returned 1 exit status

make: *** [sapi/fpm/php-fpm] Error 1

 

Brakuje mi jakieś biblioteki, czy inny błąd?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość thetox

Daj

 

apt-get build-dep php5

 

i spróbuj ponownie.

 

Poza tym różnego rodzaju błędy możesz wpisywać w Google :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Daj

 

apt-get build-dep php5

 

i spróbuj ponownie.

 

Poza tym różnego rodzaju błędy możesz wpisywać w Google :)

 

vps:/usr/src/php-5.3.5# apt-get build-dep php5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libc-client2007b-dev' instead of 'libc-client-dev'
The following packages have unmet dependencies:
apache2-prefork-dev : Depends: apache2.2-common (= 2.2.9-10+lenny9) but it is not going to be installed
                      Depends: libaprutil1-dev but it is not going to be installed
debhelper : Depends: dpkg-dev (>= 1.14.15) but it is not going to be installed
libgd2-xpm-dev : Depends: libfontconfig1-dev but it is not going to be installed
libsnmp-dev : Depends: libsnmp15 (= 5.4.1~dfsg-12) but it is not going to be installed
              Depends: libsnmp-perl (= 5.4.1~dfsg-12) but it is not going to be installed
libsqlite0-dev : Depends: libsqlite0 (= 2.8.17-4) but 2.8.17-6 is to be installed
quilt : Depends: bzip2 but it is not going to be installed
E: Build-dependencies for php5 could not be satisfied.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość thetox

Ja własnie kompiluje sobie php5 pod nginxa też na debianie i problemu z kompilacja nie mam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

(...)

 

/usr/bin/ld: cannot find -lltdl

 

Kluczowy fragment - brakuje Ci biblioteki libltdl. Jak się paczka z tą biblioteką w Debianie nazywa to wierzę, że sam znajdziesz :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

rl -lxml2 -lxml2 -lcrypt -lxml2 -lxml2 -lxml2 -lxslt -lxml2 -lcrypt   -o sapi/fpm/php-fpm
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
main/main.o:(.data+0x0): undefined reference to `php_register_internal_extensions'
collect2: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] Error 1

ehh

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

rl -lxml2 -lxml2 -lcrypt -lxml2 -lxml2 -lxml2 -lxslt -lxml2 -lcrypt   -o sapi/fpm/php-fpm
/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
main/main.o:(.data+0x0): undefined reference to `php_register_internal_extensions'
collect2: ld returned 1 exit status
make: *** [sapi/fpm/php-fpm] Error 1

ehh

 

Jaką wersję PHP kompilujesz: najnowszą stabilną czy rozwojową? Co krok po kroku zrobiłeś od momentu rozpakowania źródeł? Mam nadzieję, że _nie_ zrobiłeś tego:

 

svn co http://svn.php.net/repository/php/php-src/trunk/sapi/fpm sapi/fpm

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×