[linux] problemen met PHP compilen met GD en freetype

Pagina: 1
Acties:

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Ik heb problemen met het compileren van PHP 4.3.9 met GD 2.0.33 en freetype 2.1.9

Als handleiding heb ik deze howto aangehouden.

Het compileren en installeren van freetype en GD gaat allemaal zonder problemen.

PHP probeer ik onder de volgende commands te compileren:
code:
1
2
3
4
5
6
7
8
./configure 
--with-apxs=/usr/local/apache/bin/apxs 
--enable-mysql 
--with-zlib 
--with-gd=/usr/local/  
--with-freetype-dir=/usr/local/src/freetype-2.1.9 
--with-ttf 
--enable-gd-native-ttf


Als ik het command make uitvoer eindigt hij met de volgende errors:
code:
1
2
3
4
5
6
7
8
9
10
11
12
ext/gd/gd.lo(.text+0x1257): In function `zif_imagecolormatch':
/usr/local/src/php-4.3.9/ext/gd/gd.c:807: undefined reference to `gdImageColorMatch'
ext/gd/gd.lo(.text+0x2cc4): In function `zif_imagerotate':
/usr/local/src/php-4.3.9/ext/gd/gd.c:1117: undefined reference to `gdImageRotate'
ext/gd/gd.lo(.text+0x5b69): In function `zif_imageline':
/usr/local/src/php-4.3.9/ext/gd/gd.c:2189: undefined reference to `gdImageAALine'
ext/gd/gd.lo(.text+0x6bf0): In function `zif_imageellipse':
/usr/local/src/php-4.3.9/ext/gd/gd.c:2322: undefined reference to `gdImageEllipse'
ext/gd/gd.lo(.text+0x9c8c): In function `zif_imageantialias':
/usr/local/src/php-4.3.9/ext/gd/gd.c:3883: undefined reference to `gdImageAntialias'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1


Ik heb geen idee waar het aan ligt aangezien GD en Freetype wel goed en zonder errors geinstalleerd zijn. Ook het googlen levert geen duidelijk resultaat op.

  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 14-02 18:04
gd/jpeg/gif/png support zit in php 4.3.9 ingebakken!

vervang dus --with-gd=/usr/local/ door --with-gd

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Dat klopt inderdaad. Alleen freetype zit in die GD weer niet ingebakken, en ik wil juist dynamische plaatjes met fonts gaan maken.

Verwijderd

En wat heeft dat met Professional Networking & Servers te maken?

PNS > NOS

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 15-02 21:01

Kees

Serveradmin / BOFH / DoC
code:
1
2
3
4
5
6
'--with-gd=/usr' \
'--with-jpeg-dir' \
'--with-png-dir' \
'--with-freetype=/usr' \
'--enable-gd-native-ttf' \
'--with-freetype-dir=/usr' \
Zo doet hij het bij mij goed, alhoewel ik gd en freetype wel geconfigged heb met --prefix=/usr ipv de (default waarde) /usr/local

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • Mark
  • Registratie: Juni 1999
  • Laatst online: 15-02 16:03
Flikker die oude Howto maar weg :). De GD versie welke bij PHP zit werkt gewoon met Freetype. Installeer eerst gewoon freetype. Compileer daarna PHP met minimaal deze configure options: --with-gd --enable-gd-native-ttf --with-freetype-dir
Path invullen achter --with-freetype-dir is normaal gesproken niet nodig, mocht hij errors geven vul dan wel het path in van de locatie waar je Freetype hebt geinstalleerd (en dus niet naar de source wat jij doet).

[ Voor 5% gewijzigd door Mark op 01-12-2004 00:40 ]


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Ik heb eerst geprobeerd te compilen met de volgende command's
code:
1
2
3
4
5
6
7
8
9
10
./configure 
--with-apxs=/usr/local/apache/bin/apxs 
--enable-mysql 
--with-zlib 
--with-gd=/usr 
--with-jpeg-dir 
--with-png-dir 
--with-freetype=/usr 
--enable-gd-native-ttf 
--with-freetype-dir=/usr

Dit gaf echter nog steeds dezelfde errors

Toen heb ik het geprobeerd met de volgende command's
code:
1
2
3
4
5
6
7
./configure 
--with-apxs=/usr/local/apache/bin/apxs 
--enable-mysql 
--with-zlib 
--with-gd 
--enable-gd-native-ttf 
--with-freetype-dir

Tijdens het compilen meld hij het volgende
code:
1
2
3
4
5
6
7
8
checking for GD support... yes
checking for the location of libjpeg... no
checking for the location of libpng... no
checking for the location of libXpm... no
checking for FreeType 1.x support... no
checking for FreeType 2... yes
checking for T1lib support... no
checking whether to enable truetype string function in GD... yes


Dat ziet er dus goed uit. Ook het make'n en make install werkt gewoon goed. Naar mijn idee moet het dus werken.

Nou probeer ik in php de functie ImageTTFText() te gebruiken, maar dan krijg ik de melding "Call to undefined function"

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 15-02 16:03
Wat geeft een phpinfo als output bij het blokje GD ?

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
In het GD blokje staat dit:
GD Support enabled
GD Version bundled (2.0.28 compatible)
GIF Read Support enabled
GIF Create Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

Wat me trouwens ook opvalt is dat de build date niet aangepast is, die staat nog steeds op 6 oktober en het lijkt mij vandaag toch echt 1 december :?
En dat terwijl die geen fouten tijdens het make'n geeft. En hij installeert hem ook gewoon in de goede dir. bij mij "/usr/local/apache"

  • riotrick
  • Registratie: Mei 2002
  • Laatst online: 24-01 10:44
als ik de gd functies in de php handleiding bekijk dan gebruik je ook de verkeerde functies:

Uit je compile actie:
code:
1
2
checking for FreeType 1.x support... no
checking for FreeType 2... yes


En uit de manual:
imagettftext -- Write text to the image using TrueType fonts
This function requires both the GD library and the FreeType library.

imagefttext -- Write text to the image using fonts using FreeType 2
Note: This function requires GD 2.0.1 or later. ( en FreeType 2 natuurlijk ).

[ Voor 20% gewijzigd door riotrick op 01-12-2004 11:40 ]

Facebook :: Twitter :: PSN


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Ook als ik de functie ImageFTText() gebruik geeft hij de melding "Call to undefined function". Maar wat ik dus al eerder zei volgens mij word ie niet helemaal goed geinstalleerd aangezien de build date nog op 6 oktober staat. Iemand een idee hoe dat komt ?

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 15-02 16:03
emkedouwe schreef op woensdag 01 december 2004 @ 11:34:
Wat me trouwens ook opvalt is dat de build date niet aangepast is, die staat nog steeds op 6 oktober en het lijkt mij vandaag toch echt 1 december :?
En dat terwijl die geen fouten tijdens het make'n geeft. En hij installeert hem ook gewoon in de goede dir. bij mij "/usr/local/apache"
Heb je ook Apache geherstart ? En weet je zeker dat /usr/local/apache ook de plek is van je oude PHP module ? Om de een of andere reden blijf jij de oude build gebruiken.

[ Voor 8% gewijzigd door Mark op 01-12-2004 16:54 ]


  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Ja ik heb apache gerestart (met /usr/local/apache/bin/apachectl stop). Ook als ik kijk naar libphp4.so zie ik dat die op 1 december als laatste is geupdate. En in de httpd.conf word deze ook netjes geinclude.

  • Mark
  • Registratie: Juni 1999
  • Laatst online: 15-02 16:03
emkedouwe schreef op woensdag 01 december 2004 @ 17:17:
Ja ik heb apache gerestart (met /usr/local/apache/bin/apachectl stop). Ook als ik kijk naar libphp4.so zie ik dat die op 1 december als laatste is geupdate. En in de httpd.conf word deze ook netjes geinclude.
En dan geeft hij bij phpinfo nog steeds de oude builddate ? Check eens of er echt niet meer PHP modules op je systeem staan (find -name / libphp4.so)

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Misschien handig als ik gewoon even een linkje plaats naar de phpinfo. Bij deze dus

ff gezocht en het resultaat:
code:
1
2
3
/usr/local/src/php-4.3.9/.libs/libphp4.so
/usr/local/src/php-4.3.9/libs/libphp4.so
/usr/local/apache/libexec/libphp4.so


Waarom zitten er trouwens 2 libs dir in de php package :? Maar er is dus maar 1 libphp4.so die gebruikt word en die zit in de /usr/local/apache/libexec (die andere komen uit de source tar)

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Ik heb net de hele source dir van php weggegooid en de code even opnieuw uitgepakt. Daarna opnieuw gecompiled en gemake'd en voila! het werkt. Toch vaag dat ie niet goed update terwijl ik wel de config.cache had weggegooid.
Pagina: 1