php5 kompilieren

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
cirox
Beiträge: 70
Registriert: 23.06.2006 20:37:57

php5 kompilieren

Beitrag von cirox » 02.09.2006 11:03:53

Hallo,

hätte mal eine Verständnisfrage. Wenn ich php kompiliere und meinetwegen mit curl und mit gd, dann sind gd und curl doch als extension in den Sourcen?

Weil man kann doch ein ein "dir" angeben und meinetwegen gd und curl über apt-get ins system installieren kann. Oder bezieht sich dieses "dir" nur darauf wohin was installiert wird?

gruß cirox

Zwerg
Beiträge: 397
Registriert: 26.12.2005 00:10:09
Wohnort: Magrathea
Kontaktdaten:

Beitrag von Zwerg » 02.09.2006 13:00:34

Wenn du das directory nicht mit angibst, dann sucht php in den standardpfaden nach dem zeug was es benötigt. Wenn du deine Sachen via Aptitude / apt-get installiert hast sollte es in den Standardpfaden zu finden sein.

cirox
Beiträge: 70
Registriert: 23.06.2006 20:37:57

Beitrag von cirox » 02.09.2006 13:50:54

Hallo,

ok und was heisst "shared" ? z. Bsp.: --with imap="shared" ?

Eine andere Sache. Ich habe mir mal auf nem Testrechner apt-get source php5 besorgt. Da gibts ja nun ne Menge readme s . In einer unter steht drin:

curl : shared : needs external library

Wie bekomme ich nun die external librarys am schellsten raus?

Ein apt-cache search curl, wird wahrscheinlich alles auflisten aber auch ne Menge zuviel?
Wenn ich apt-get install curl eingebe, wird dann restlos alles installiert. Wahrscheinlich eher nicht, da es ja noch lib.....-dev Pakete geben wird.

Ne andere Möglichkeit wäre unter http://packages.debian.org/stable/web/curl zu suchen, da stehen ja die depends. Aber was ich nicht finde ist zum Beispiel:

ich suche apt-cache curl und bekomme:

libghttp-dev z. Bsp. angezeigt. Wie bekomme ich in dem ganzen durcheinander am besten raus was wichtig ist und was nicht, ohne alles auszuprobieren, durchzulesen und zu ergooglen. Klar "thats the way" aber ich würde ganz gerne mal ein bisschen Zeit sparen wollen.

gruß & danke cirox

Zwerg
Beiträge: 397
Registriert: 26.12.2005 00:10:09
Wohnort: Magrathea
Kontaktdaten:

Beitrag von Zwerg » 02.09.2006 14:00:44

Ich weis ja nicht was du mit "alles lesen" meinst, aber eigentlich reicht es doch schon jeweils den ersten Abschnitt der PHP Doku zu diesem Thema zu lesen:
http://www.php.net/manual/de/ref.curl.php

cirox
Beiträge: 70
Registriert: 23.06.2006 20:37:57

Beitrag von cirox » 02.09.2006 14:09:40

Hallo,

verstehe langsam. Curl scheint bei Debian im Standarddir installiert zu sein. Um nun php mit curl zu kompilieren, brauch ich wahrscheinlich keine "dir" angeben, weils eh Standard ist.

Curl installiere ich mit apt-get vorher. Ein Blick auf die im vorherigen Post angebene Seite, kann jedoch nie Schaden ;-)

Bloss was ist "shared", siehe letztes Post ? Ich find nix dazu irgendwie.

gruß & danke cirox

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 02.09.2006 15:21:40

Man kann Libraries statisch linken oder shared libs benutzen. Sprich, beim statischen Linken ist die Bibliothek fest im Binary mit eingebaut.
Wenn man es ueber shared libs macht, dann liegt die Bibliothek auf der Platte und wird bei Bedarf nachgeladen. Ausserdem koennen nun mehrere Programme die gleiche Library nutzen...

cirox
Beiträge: 70
Registriert: 23.06.2006 20:37:57

Beitrag von cirox » 02.09.2006 16:57:38

Hallo,

sorry für die gleich umfangreichen Fragen/Erläuterungen, aber es muss mal sein .....

Vorab gleich ne Frage. Wenn ich kein "dir" angebe und nicht "shared" werden die libs .... im System unter den Standardpfaden gesucht und fest ins Binary verlinkt?
Wenn ich jetzt shared angebe, also fest verlinken will, muss ich da nicht noch ne "dir" angeben, oder nur dann wenn z. Bsp. gd2 nicht im Standardpfad ist?

Es gibt die Parameter:
--with-zlib[=DIR]
--with-zlib-dir=<DIR>

Ist das nicht doppelt gemoppelt ?
Ich kann doch gleich --with-zlib=/usr sagen oder?

ok, dann nehme ich mal das Beispiel:

--with-gd=shared

Ist in dem Fall doch sinnlos. Erklärung siehe auch unten: Man sollte die fest eingebundene in php nehmen.
Mal angenommen ich habe keine Ahnung obs auf dem System ist: Dann mach ich zuerst, mal abgesehen von einem "updatedb && locate gd2" ein apt-cache search gd2. Da wird mir einiges angezeigt. Ich installiere alle Pakete, indem Fall alles ohne (without XPM support). Jetzt hab ich grundsätzlich erstmal gd2 auf dem Server.

Jetzt ist die Frage zu klären, in welchem Dir ist gd2 und findet es mein configure Skript und noch so ein paar andere Sachen.

Ich schau auf: http://www.php.net/manual/de/ref.image.php

Was seh ich da:

Anmerkung: Seit PHP 4.3 ist eine Version der GD-Bibliothek in PHP enthalten. Diese gebündelte Version bietet zusätzliche Möglichkeiten, wie z.B. alpha blending und sollte der externen Version immer vorgezogen werden (der Code wird besser betreut und ist stabiler).

Vielleicht ist das Beispiel da mit "shared" siehe oben doch nicht so gut, oder ich peil schon wieder was nicht. Aber ok, weiter. Werd ich mal mein configure skript nach dem Beispiel aufbauen.

Gleich vorweg ich installiere erstmal nichts, wo mir apt irgendwlche Pakte removed .... ohe mich zu informieren.

1. apt-get install libgd-gd2-perl libgd2 libgd2-dev libgd2-xpm libgd2-xpm-dev
2.
./configure \
--with gd
--with-jpeg-dir=???

( locate jpeg:
/usr/include/jpegint.h
/usr/include/jpeglib.h
/usr/lib/gdk-imlib1/libimlib-jpeg.so
/usr/lib/libjpeg.a
/usr/lib/libjpeg.la
/usr/lib/libjpeg.so
/usr/lib/libjpeg.so.62
/usr/lib/libjpeg.so.62.0.0
/usr/lib/qt3/plugins/imageformats/libqjpeg.so

-> sieht gut aus
also ist mein dir doch jetzt /usr ?
-> --with-jpeg-dir=/usr

--with-zlib-dir =/usr

apt-cache...
libio-zlib-perl libjzlib-java libcompress-zlib-perl zlib-bin zlib1g zlib1g-devzlibclibzzip-0-12libzzip-dev
-> apt-get install libio-zlib-perl libjzlib-java libcompress-zlib-perl zlib-bin zlib1g zlib1g-dev zlibc libzzip-0-12 libzzip-dev

--with-png-dir=/usr
(libpng12-0 - PNG library - runtime
libpng12-dev - PNG library - development
hab ich auf dem System -> vorher apt-cache ... und locate gemacht)

so xpm lass ich weg ( nach einem locate und einer Studie auf php site hab ich irgendwas von x11 gelesen und das ist doch der Bildschirm -Desktop - Mist, oder ?)

--with-ttf=/usr
(hm, ein locate sagt mir nicht viel auf dem System -> apt-cache ->
apt-get install libttf-dev libttf2
-> locate ttf -> jetzt ist was unter /usr

--with-freetype-dir=/usr
(locate freetype2 -> scheint was unter /usr zu sein)

--with-t1lib=/usr
(locate .... sheint auch da zu sein)

--enable-gd-native-ttf

So kann sein das ich hier viel zu viel mache und auch was falsch, abr rein von der Sache ist das so richtig, oder gibt es Vereinfachungen?

Ähm, ich will ja nix sagen, aber wenn ich so alle Parameter durchgehe, erst recht nach einem ./configure --help, dann werd ich grau

gruß&danke cirox

PatrickS
Beiträge: 68
Registriert: 23.08.2005 10:31:29
Wohnort: Berlin

Beitrag von PatrickS » 05.12.2006 13:53:27

Code: Alles auswählen

apt-get install php5-curl
Schon einmal probiert ?

DeletedUserReAsG

Beitrag von DeletedUserReAsG » 05.12.2006 16:38:51

Ähm, ich will ja nix sagen, aber wenn ich so alle Parameter durchgehe, erst recht nach einem ./configure --help, dann werd ich grau
Falsches Hobby? Sorry, could not resist...

cu

Antworten