Kompilieren von PHP mit GD

d3non

New Member
Hallo.

Ich brauche für ein Thumbnailscript GD/JPG(und auch PNG) Support in meinem PHP.
Da ich es selber kompiliere dachte ich mir hey kein Problem und habe es mit folgenden Parametern configuriert:
'./configure' '--with-apxs2=/usr/sbin/apxs' '--with-mysql' '--with-gd' '--with-config-file-path=/etc/php5' '--with-jpeg-dir=/usr/lib' '--with-png'

configure läuft ohne Probleme durch, ebenso wie make & make install.
Danach läuft auch alles im Apache2 wie es soll, nur fehlt der JPG suppoert(sagt zumindest phpinfo().

Ich habe auch schon mit verschiedenen kombinationen von: "--with-jpeg; --with-jpeg-dir; --with-jpeg-dir=/usr/lib" experimentiert, aber es läuft alles nichts.
Ich habe nachdem dies nichts gebracht hat, nacheinander alle sinnvoll klingenden Pakete installiert. Im Detail waren dies:
-libgd2
-libjpeg-progs
-libjpeg62
-libjpeg62-dev

Zum System:
Debain Sarge
Apache 2.2.8 (ebenfalls selbst erstellt)
PHP 5.2.6

Hat von euch jemand ein Tipp oder ne Idee, was ich noch ausprobieren könnte?

Danke schonmal für die Hilfe :)
 
Du hast die Anführungszeichen -'- weggelassen oder?
Also so aufgerufen:
Code:
./configure --with-apxs2=/usr/sbin/apxs --with-mysql --with-gd --with-config-file-path=/etc/php5 --with-jpeg-dir=/usr/lib --with-png
Kannst Dir auch mal die Ausgabe von configure ansehen, meisten hilft das schon um den Fehler zu finden.
 
Ja klar, ohne die anführungszeichen. Hatte das aus der phpinfo() rauskopiert und da wird das anscheinend mit ' ' um die einzelnen Teile angezeigt.

Ich lass es gerade nochmal durchlaufen und suche dann mal mit grep nach allen Vorkommen von jpeg(inc. den Ergebnissen der checks)

Edit:
Hier mal die Vorkommen von "jpeg" in der config.log:
configure:45094: checking for the location of libjpeg
configure:45112: result: /usr/lib
--------
configure:45622: checking for jpeg_read_header in -ljpeg
configure:45652: gcc -o conftest -g -O2 conftest.c -ljpeg -lresolv -lm -ldl $
configure:45658: $? = 0
configure:45661: test -z || test ! -s conftest.err
configure:45664: $? = 0
configure:45667: test -s conftest
configure:45670: $? = 0
configure:45683: result: yes
--------
ganz viele Aufrufe von "gcc -o conftest ..." (ich denke das sind überprüfnungen ob alles stimmt, aber da ist nur das -ljepg in der Parameterliste)
--------
ac_cv_lib_jpeg_jpeg_read_header=yes
-------
CONFIGURE_COMMAND=' './configure' '--with-apxs2=/usr/sbin/apxs' '--with-mysql' [...]
------
EXTRA_LIBS='-lcrypt -lcrypt -lrt -lmysqlclient -lpng -lz -ljpeg -lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt '

Soo, das war alles was ich in der config.log gefunden hab.
Ich werd jetzt nochmal ein make und dann mal ein make test machen und sehen, ob sich da irgendwas findet

Edit2:
Das ist alles, was make am Ende ausspuckt:
Build complete.
Don't forget to run 'make test'.
Dann werd ich das jetzt mal tun :)

Edit3:
Hier die Ergebnisse von "make test":
Number of tests : 5811 4151
Tests skipped : 1660 ( 28.6%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 13 ( 0.2%) ( 0.3%)
Tests passed : 4138 ( 71.2%) ( 99.7%)
--------------------
FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #42082 (NodeList length zero should be empty) [ext/dom/tests/bug42082.phpt]
Bug #16069 (ICONV transliteration failure) [ext/iconv/tests/bug16069.phpt]
iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
Test closedir() function : usage variations - close a file pointer [ext/standard/tests/dir/closedir_variation3.phpt]
Test readdir() function : usage variations - use file pointers [ext/standard/tests/dir/readdir_variation7.phpt]
Test rewinddir() function : usage variations - file pointers [ext/standard/tests/dir/rewinddir_variation3.phpt]
Test lstat() and stat() functions: usage variations - effects of touch() on link [ext/standard/tests/file/lstat_stat_variation6.phpt]
money_format test [ext/standard/tests/strings/moneyformat.phpt]
Test setlocale() function : basic functionality - setting system locale to a specific [ext/standard/tests/strings/setlocale_basic1.phpt]
Test setlocale() function : basic functionality - set locale using an array [ext/standard/tests/strings/setlocale_basic2.phpt]
Test setlocale() function : basic functionality - passing multiple locales as argument [ext/standard/tests/strings/setlocale_basic3.phpt]
Test setlocale() function : usage variations - passing multiple valid/invlaid locales as argument [ext/standard/tests/strings/setlocale_variation1.phpt]
Test setlocale() function : usage variations - setting system locale = 0 [ext/standard/tests/strings/setlocale_variation3.phpt]

Ich finde da keine Fehler die irgend etwas mit jpeg oder gd zu tun haben könnte.
Irgend ne Idee?
 
Last edited by a moderator:
Der entsprechende Part sah bei mir (PHP 4.4.8) so aus:

... '--with-freetype-dir=/usr/include/freetype2' '--with-gd' '--enable-gd-imgstrttf' '--enable-gd-native-ttf' '--with-png-dir=/usr' '--with-jpeg-dir=/usr' '--with-tiff-dir=/usr' '--with-png' '--with-jpeg' ...

War eine ewige Fummelei bis der jpeg-Kram eingebunden war. Wie bei Dir :rolleyes: Gib mal nur bei "--with-jpeg-dir=/usr" an und zusätzlich "--with-jpeg"

Das komplette ./configure setzte sich dann wie folgt zusammen:

Code:
'./configure' '--host=i686-pc-linux-gnu' '--build=i686-pc-linux-gnu' '--target=i386-redhat-linux' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--cache-file=../config.cache' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--enable-force-cgi-redirect' '--disable-debug' '--enable-pic' '--disable-rpath' '--enable-inline-optimization' '--with-bz2' '--with-curl=/usr/local/include' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr/include/freetype2' '--with-gd' '--enable-gd-imgstrttf' '--enable-gd-native-ttf' '--with-png-dir=/usr' '--with-jpeg-dir=/usr' '--with-tiff-dir=/usr' '--without-gdbm' '--with-gettext' '--with-ncurses' '--with-gmp' '--with-iconv' '--with-openssl' '--with-png' '--with-jpeg' '--with-tiff' '--with-pspell' '--with-regex=system' '--with-xml-dir=/usr/local/include/libxml2/libxml' '--with-expat' '--with-expat-dir=/usr/local' '--with-dom=shared,/usr' '--with-dom-xslt=/usr/local/include/libxslt' '--with-dom-exslt=/usr/local/include/libxslt' '--with-xmlrpc=shared' '--with-pcre=/usr/local/include' '--with-zlib-dir=/usr/local' '--with-zlib' '--with-layout=GNU' '--enable-bcmath' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-pear-dir=/usr/share/pear' '--with-imap=shared' '--with-imap-ssl' '--with-kerberos' '--with-mysql=shared,/usr' '--with-pgsql=shared,/usr/local/pgsql' '--with-snmp=shared,/usr/local/include/net-snmp' '--with-snmp=shared' '--enable-ucd-snmp-hack' '--enable-memory-limit' '--enable-bcmath' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--enable-mcal' '--enable-mbstring=shared' '--enable-mbstr-enc-trans' '--enable-mbregex' '--with-apxs2=/usr/sbin/apxs' '--with-ldap=shared,/usr' '--with-zip'

:D
 
Last edited by a moderator:
Hmm ich hab mal deinen Tipp umgesetzt und es auch mal mit ein par weiteren Pfadangaben versucht:

./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib --with-config-file-path=/etc/php5 --with-config-file-scan-dir=/etc/php5/conf.d --enable-force-cgi-redirect --with-bz2 --with-gd --enable-gd-imgstrttf --enable-gd-native-ttf --with-png-dir=/usr --with-jpeg-dir=/usr --with-tiff-dir=/usr --without-gdbm --with-openssl --with-png --with-jpeg --with-tiff --with-regex=system --enable-exif --enable-sockets --with-mysql=shared,/usr --with-apxs2=/usr/sbin/apxs --with-zip

Das Ergebnis bleibt das gleiche: configure, make und make install laufen ohne Probleme durch. PHP läuft ebenfalls ohne Probleme, nur phpinfo() zeigt, das GD der JPG Support fehlt :(

PS: Ja ich hab apache nach make install neugestartet^^
 
Hast Du auch schön "make clean" gemacht?
Ähm, das openssl-Zeug etc. musst Du aber nicht übernehmen ;)
Installiere doch einmal die libjpeg aus den Sourcen ohne irgendwelche Pfadangaben. Nur ./configure

http://www.ijg.org/files/jpegsrc.v6b.tar.gz

Und leite Deine Ausgaben von ./configure in eine Datei um.

./configure --prefix=/usr --exec-prefix=/usr .... > configlog.log

Diese Datei dann mal posten. Dort muss in etwa stehen:

...
checking for GD support... yes
checking for the location of libjpeg... /usr
checking for the location of libpng... /usr
...
und
checking for jpeg_read_header in -ljpeg... (cached) yes
 
Last edited by a moderator:
Soo....erstmal, es hat geklappt :)

Dann zum warum:

Ich habe vergessen nach dem "make install" aufzuräumen....ich sollte mir das alles mit make etc nochmal genauer ansehen.
*Kopf -> Tisch*

Dein Hinweis hat mir da sehr geholfen :D
Vielen Dank :)
 
Back
Top