PHP Wil niet GD runnen

Pagina: 1
Acties:

  • Blubber
  • Registratie: Mei 2000
  • Niet online
Ik heb onder Slackware 8.1 de nieuwste jpeglib en GD geinstalleerd. In beide Makefiles alle paths goed gezet. Vervolgens wil ik PHP compilen met oa gd support, ik gebruik deze ./configure:

./configure --with-gettext --with-imap --with-imap-ssl --with-ssl --with-openssl --with-mcrypt --with-gd --with-apxs=/usr/local/apache/bin/apxs --with-mysql --with-pgsql=/usr/local/postgres --with-xml

Het compilen en installen werkt perfect. Alleen als ik nu apache op start krijg ik deze error:

root@isis:/# /etc/rc.d/rc.httpd start
Starting Apache...
Syntax error on line 206 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/libexec/libphp4.so into server: /usr/lib/libgd.so: undefined symbol: jpeg_resync_to_restart
/usr/local/apache/bin/apachectl start: httpd could not be started
root@isis:/#

Ik vat er geen hout van, en ik kan ook niks op internet vinden. Misschien weten jullie wat er fout is?

BTW: Zonder gd werkt het wel :(

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Apache probeert libphp4.so te laden, en die heeft libgd.so nodig. In libgd.so zit echter een symbool 'jpeg_resync_to_restart' wat niet gevonden wordt in de libraries waar libgd.so afhankelijk van is. Dat symbool zit (zoals te verwachten) in libjpeg.

Wat zie je als je 'ldd /usr/lib/libgd.so' doet? Daar zou libjpeg.so tussen moeten staan. Tenzij je libjpeg statisch in gd gecompileerd hebt, maar dan is het statisch meecompileren fout gegaan.

Weet je zeker dat het compileren goed is gegaan? Geen errors zoals hier.

"He took a duck in the face at two hundred and fifty knots."


  • Blubber
  • Registratie: Mei 2000
  • Niet online
Ik weet wel zeker dat het compilen goed ging. Hier is de output van ldd:

ldd: warning: you do not have execution permission for `/usr/lib/libgd.so'
statically linked

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
Toch is libjpeg blijkbaar niet meegelinkt. Misschien vergeten bij het aanpassen van de Makefiles?

"He took a duck in the face at two hundred and fifty knots."


  • Blubber
  • Registratie: Mei 2000
  • Niet online
Ik vat er geen hout van. Ik compile libjpeg zo:
./configure
make
make install

En dan bij gd eigenlijk hetzelfde, ff de Libdirs nakijken maar die staan goed. Maar ik kan ook nergens een libjpeg.so vinden...

  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
libjpeg.so / libjpeg.a zou in /usr/local/lib moeten staan als je geen prefix opgeeft aan configure.

"He took a duck in the face at two hundred and fifty knots."


  • Blubber
  • Registratie: Mei 2000
  • Niet online
Hij compiled nu wel met gd 2.0.4, maar als ik dan naar me phpinfo() ga denkt PHP dat hij gd1.2 gebruikt :(. En er staat verder ook niets bij van png en jpeg, die zijn toch echt meegecompiled :(. Ik snap er niks meer van

  • DiNo!
  • Registratie: Juni 2000
  • Laatst online: 06:49
Blubber schreef op 30 oktober 2002 @ 09:08:
Hij compiled nu wel met gd 2.0.4, maar als ik dan naar me phpinfo() ga denkt PHP dat hij gd1.2 gebruikt :(. En er staat verder ook niets bij van png en jpeg, die zijn toch echt meegecompiled :(. Ik snap er niks meer van
Lijkt erop dat je nieuwe GD niet in de goede library directories staan.

https://github.com/atoomnetmarc/


Verwijderd

ldconfig gedaan :?

  • Blubber
  • Registratie: Mei 2000
  • Niet online
ldconfig gedaan. Maar ik heb nooit een andere GD gehad. Dat is ook het vreemde :) ik heb trouwens net geprobeerd alle gd libs en headers van me HD te gooien, en de boel opnieuw compilen maar dat werkt ook niet.
Ik moets trouwens ook regel 92 van ext/gd/gd.c van commentaar voorzien, anders gaf hij een fout bij het compilen.

  • Blubber
  • Registratie: Mei 2000
  • Niet online
Het werkt inmiddels. Heb php 4.3.0-dev van cvs getrokken, die werkt wel. Daar dit GD namelijk bij :)

  • igmar
  • Registratie: April 2000
  • Laatst online: 12-05 15:46

igmar

ISO20022

ldconfig draaien zal je niet helpen, ld != ldd != ld.so

Verwijderd

Ik heb hetzelfde probleem gehad met libjpeg... hij installeerde de libs en headers niet. (naast het feit dat ie de directories niet aanmaakte)

Uiteindelijk heb ik t opgelost (dankzij Fatal-Error) door 2 keer een extra make commando te geven:

make install-lib
make install-headers

daarna werden de libs en headers mooi geinstalleerd naar de prefix die ik had aangegeven met configure.

Echter wil mn PHP nog niet echt werken met libjpeg (imagecreatefromjpeg werkt niet :() Dat terwijl ik én GD compile met JPEG support én PHP met --with-jpeg-dir=... installeer.

ik vind t vreemd, aangezien GD echt zegt:
JPEG Support: YES

en PHP geeft ook geen errors op libjpeg.
Wie weet hoe dit zou kunnen komen? :?
Pagina: 1