Forum Linux.redhat pb librairie GD pour php

Posté par  .
Étiquettes :
0
15
août
2005
Bonjour, à tous !

Tout d'abord je ne suis pas un expert en Linux, mais pas non plus un novice.

Je viens d'installer la fedora core 4 pour me faire un petit serveur WEB (à l'origine le serveur tounrait sur winXp). J4ai fait les mise à jour des paquetages, bref tout le nécéssaire.

Un fois installer, j'ai déposé tous mes fichiers qui compose mon site, chargé la base mysql,etc...

Je lance les services pour apache et mysql. Et je me lance dans le test de mon site... Et c'est la que ça coince....

En fait j'utilise les fonctions d'images de la libraire GD... et SURPRISE !! A priori la version de php 5 pour fedora core 4 ne gérerait pas par défaut cette librairie... Alors que faire....

J'ai commencé par télécharger les sources de php et les compiler... pas de bol il manque FLex. Je télécharge le rpm et installe. Je recompile php et.... pas de bol il manque libxml2....je télécharge le rpm... et là il me dis déjà installer....

C'est là que ma question arrive :

y a t-il un moyen d'activer GD sans avoir à recompiler php ? Comment ça se fait que cette librairie n'est pas par défaut dans le php de fedora ?
Si il n'y a pas moyen, quelqu'un peut il me dire ce que j'ai besoin pour recompiler php avant que je ne tombe encore sur un fichier qui manquerait ?
Quelqu'un peut il me dire que mettre dans la commande ./configure pour compiler un php correct ?

Merci d'avance pour votre aide et vos solutions.
  • # Scrute bien l'aide fournie avec configure.

    Posté par  . Évalué à 2.

    Tout est dans le titre ou presque.
    Si le php fourni avec ta distrib ne convient pas, c'est soit qu'il n'a pas été compilé avec les options qui t'intéressent, soit qu'il te manque un paquet (php-gd.rpm ?).
    Quoi qu'il en soit, si tu veux installer à partir des sources, il te faudra probablement les paquages de dev de pas mal de choses. C'est probablement ce qui se passe avec libxml2 qui est installé, mais pas libxml2-dev ou quelque chose d'approchant.
    Bref, pour le problème qui te préoccupe, il me semble que php, dans sa version source, débarque avec un gd "forké" de la libgd originelle, et qu'il est conseillé d'utiliser celle-là. Je n'ai pas de manchot sous la main pour vérifier mes dires, mais il me semble qu'un ./configure --enable-gd ou --with-gd est suffisant. A vérifier avec l'aide fournie par le ./configure. D'où le titre :
    Munis-toi d'un papier et d'un crayon, ou mieux, d'un second terminal. Dans le premier, tu tapes ./configure --help | less pour voir l'aide, la lire, et récupérer les options qui vont bien, et dans l'autre, tu remplis les options au fil de l'eau, selon ce dont tu as besoin.
    Dans une distrib à paquet, ce n'est pas trop conseillé d'installer depuis les sources, car ça casse les dépendances, mais c'est à toi de voir.
    Voilà, en espérant que ça aide.
    • [^] # Re: Scrute bien l'aide fournie avec configure.

      Posté par  . Évalué à 0.

      j'ai fait un phpinfo et dans la zone /.confgure il sort ça :

      './configure' '--build=i386-redhat-linux' '--host=i386-redhat-linux' '--target=i386-redhat-linux-gnu' '--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-libdir=lib' '--with-config-file-path=/etc' '--with-config-file-scan-dir=/etc/php.d' '--disable-debug' '--with-pic' '--disable-rpath' '--with-bz2' '--with-curl' '--with-exec-dir=/usr/bin' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--enable-gd-native-ttf' '--without-gdbm' '--with-gettext' '--with-gmp' '--with-iconv' '--with-jpeg-dir=/usr' '--with-openssl' '--with-png' '--with-pspell' '--with-expat-dir=/usr' '--with-pcre-regex=/usr' '--with-zlib' '--with-layout=GNU' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars' '--enable-trans-sid' '--enable-yp' '--enable-wddx' '--with-pear=/usr/share/pear' '--with-kerberos' '--enable-ucd-snmp-hack' '--with-unixODBC=shared,/usr' '--enable-memory-limit' '--enable-shmop' '--enable-calendar' '--enable-dbx' '--enable-dio' '--with-mime-magic=/usr/share/file/magic.mime' '--without-sqlite' '--with-libxml-dir=/usr' '--with-xml' '--with-apxs2=/usr/sbin/apxs' '--without-mysql' '--without-gd' '--without-odbc' '--disable-dom' '--disable-dba'

      c'est surtout le '--without-gd' qui fou la merde....

      je crois que je suis bon pour recompiler php....
  • # PHP.ini

    Posté par  . Évalué à 1.

    Je suis toujours sur PHP4, mais il est possible que dans ton fichier php.ini, le module pour GD soit toujours en commentaire. Chez moi, ça donne :
    ;extension=php_gd2.dll
    Si tel est le cas, supprime le ';' et redémarre Apache.
    • [^] # Re: PHP.ini

      Posté par  . Évalué à 1.

      ça c'est valable sous windows.... et ce serait génial si ça marchait sur linux....

      merci quand même
      • [^] # Re: PHP.ini

        Posté par  . Évalué à -1.

        Oups,
        je bosse tellement sur les deux systèmes que je fais même plus gaffe. Impardonnable.

        En pénitence, je vais aller me louer le film Hackers en DVD.
        Bon, compris, je sors...
      • [^] # Re: PHP.ini

        Posté par  (site web personnel) . Évalué à 1.

        Alors c'est génial parce que sous Linux c'est la même chose, sauf qu'on remplace "dll" par "so".
        Pour avoir le .so correspondant à GD il te faut installer le package php-gd.
        • [^] # Re: PHP.ini

          Posté par  . Évalué à 1.

          Ben c'est encore plus génial car ça marche !!

          Par contre il a fallut que je reboot car l'arret et le redémarage du serveur apache n'a à priori pas suffit.

          Maintenant j'ai un autre pb mais pas d'odre Linux :))

          Merci encore

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.