# [PHP]mhash

## Eva

Bonjour,

J'ai besoin d'installer l'extension mhash sous Gentoo. J'ai donc vérifiée sur le système :

```
~ # emerge --search mhash

Searching...

[ Results for search key : mhash ]

[ Applications found : 2 ]

*  app-crypt/mhash

      Latest version available: 0.9.2

      Latest version installed: 0.9.2

      Size of downloaded files: 833 kB

      Homepage:    http://mhash.sourceforge.net/

      Description: library providing a uniform interface to a large number of hash algorithms

      License:     GPL-2

*  dev-python/python-mhash

      Latest version available: 1.3

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 17 kB

      Homepage:    http://mhash.sourceforge.net/

      Description: Python interface to libmhash

      License:     GPL-2

```

Donc le système m'indique que la version 0.9.2 est bien installée. Pourtant, lorsque je fais un phpinfo(), aucune information concernant mhash n'apparait et, de plus, un script php m'avertit que mhash n'est probablement pas installé. PHP n'est pas mon rayon mais je crois comprendre qu'en réalité les librairies mhash sont bien installées, mais pas l'extension. A partir de là, ma question est simple : comment installer l'extension mhash sur PHP5 ?

Merci de votre aide

Eva

----------

## Tanki

as tu pensé à rajouter le use mhash pour php ?

pour ce faire, 

```
echo "dev-lang/php mhash" >> /etc/portage/package.use"
```

et ensuite un emerge --newuse php devrait te permettre d'avoir le support de mhash dans php

après tout ceci reste théorique, vu que je n'utilise pas mhash, et ma connaissance php est quand meme vachement limitée, je code un peu mais l'administration Apache/PHP me dépasse un tantinet 

voili  :Smile: 

----------

## Eva

merci de ta réponse Tanki  :Smile: 

Malheureusement çà ne fonctionne pas...Toujours pas de "mhash" dans mon phpinfo()

Je suis larguée   :Sad: 

----------

## Tanki

tu as bien pensé à recompiler dev-lang/php

après, quelle est ta version de php, ptet ça varie en fonction des versions

normalement en faisant un emerge -Nav php il devrait t'afficher les use en cours et donc, normalement mhash devrait apparaitre en vert (enfin, chez moi c'est en vert  :Smile: )

----------

## Eva

Voici le message que j'ai invariablement quand j'execute : emerge -Nav php

```
--- Invalid atom in /etc/portage/package.use: dev-lang/php-5

```

et aucun use en cours 

J'ai 2 versions de php (4 et 5), actuellement je travaille sur la 5

J'y connais rien en serveur, mais un moyen plus simple ne serait-pas de simplement enlver mhash et de le réinstaller ? Quelles seraient les instructions dans ce cas ?

----------

## Tanki

edite ton /etc/package.use et enleve le "-5" après dev-lang/php

et recommence  :Wink: 

si tu as un client de messagerie instantanée (genre msn ou jabber) envoie moi ton adresse par message privé ça ira ptet plus vite  :Wink: 

----------

## Eva

c'est gentil mais tu vas t'embêter pour rien, je suis totalement ignarde dans le domaine.

Je suis sur un compte ovh "kimsufi" (le dédié pas cher) quasiment vierge, je peux pas croire que çà soit tellement particulier d'activer une extension si courante. J'ai installer Zend juste avant, çà a pris 10 secondes et là je rame depuis 3 heures...

En fait je suis perdue avec cette notion de portage. J'ai le portage Gentoo d'origine plus, d'après ce que j'ai compris, le portage ovh, avec 2 versions de php à chaque fois...l'enfer

la doc gentoo est trop vague sur ce genre de chose

----------

## Tanki

aaah OVH

c'est toujours la super misère avec les deux arbres

c'est pas la première fois que j'en entends parler

en plus leur support technique est pas géant...

(personnellement j'aurais pris une dedibox, beaucoup plus maléable)

en même temps ça devrait etre possible de faire sauter l'arbre portage-ovh dans le make.conf, ptet quelqu'un d'autres sur le forum pourra mieux te renseigner...

chuis pas un champion des overlays...

----------

## Eva

D'après le manuel php concernant l'extension mhash (http://fr2.php.net/mhash) il faut juste compiler Php avec l'option --with-mhash[=DIR]

Comment on traduit çà en langage Gentoo , parce que je me fais jeter avec ./configure

----------

## grosnours

Tanki t'a répondu, tu dois mettre "dev-lang/php mhash" dans /etc/portage/package.use et pas "dev-lang/php-5 mhash".

Edit:

A titre personnel, voici les flags USE que j'utilise au minimum pour mes installs de serveur web:

```
apache2 bcmath berkdb bzip2 calendar cgi cli crypt curl exif ftp gd gdbm hash iconv imap ipv6 kerberos ldap memlimit mhash mysql mysqli ncurses nls pcntl pcre posix postgres readline recode reflection sasl session snmp sockets spell spl sqlite ssl sysvipc truetype unicode xml xsl zip zlib
```

Ca fait beaucoup, mais les recompil pour ajout de fonctions sont très rares.

----------

## Scullder

Il faut peut-être modifier le fichier php.ini ( /etc/php/cli-php5/php.ini ou /etc/php/apache2-php5/php.ini, je sais pas) et ajouter une ligne "extension=php_mhash.so" dans le section extensions pour charger mhash. OVH a pas fait de doc là dessus ? je sais bien que leur support technique taxe pas mal pour pas grand chose en général.

----------

## Scullder

 *Eva wrote:*   

> Voici le message que j'ai invariablement quand j'execute : emerge -Nav php
> 
> ```
> --- Invalid atom in /etc/portage/package.use: dev-lang/php-5
> 
> ...

 

Pour réparer ça, utilise nano.

nano -w /etc/portage/package.use

supprime la ligne que tu as rajouté pour php ou modifie là et ctrl+x pour enregistrer le fichier.

----------

## Eva

 *grosnours wrote:*   

> 
> 
> A titre personnel, voici les flags USE que j'utilise au minimum pour mes installs de serveur web:
> 
> ```
> ...

 

Merci Grosnours. Pour ajouter ces flags tu édites le fichier etc/make.conf, n'est-ce pas ?

C'est là où j'ai un souci. En recompilant php, tu ne feras (àmha) que charger les librairies...dans l'exemple qui me concerne, la libraire mhash a bien été chargée, le système me le confime...(emerge --search hash  m'indique que mhash 0.9.2 est installé). Mais les extensions mhash ne le sont pas. Un simple phpinfo() le confirme : aucune information concernant mhash !

Pour info voici la seule doc OVH relative au sujet : http://guides.ovh.net/Release2OptionsPhp

plutôt maigre.

----------

## geekounet

Personnellement, je virerai tout le bazar de ovh et referai une vraie gentoo toute propre, ça n'a l'air de causer que des problèmes ces paquets ovh ...

----------

## Eva

 *geekounet wrote:*   

> Personnellement, je virerai tout le bazar de ovh et referai une vraie gentoo toute propre, ça n'a l'air de causer que des problèmes ces paquets ovh ...

 

Je suis pas contre. Tu connais un bon tutorial sur le sujet, genre "Gentoo pour les nuls" ?

----------

## Rewolution

Salut Eva, 

Je ne connais pas de "Gentoo pour les nuls" cependant mon expérience m'a apprit une chose : gentoo a vraiment une très bonne documentation : 

http://www.gentoo.org/doc/fr/handbook/handbook-x86.xml?full=1

Mais également une très bonne communauté. Si tu as des questons et que tu veux de l'aide en direct pour l'installation d'une gentoo ou l'utilisation de cette derniere je te conseil de passer sur irc :

#tribugentoo sur le serveur irc.freenode.org  :Smile: 

Cordialement

----------

## grosnours

 *Eva wrote:*   

>  *grosnours wrote:*   
> 
> A titre personnel, voici les flags USE que j'utilise au minimum pour mes installs de serveur web:
> 
> ```
> ...

 

Ton problème vient d'une mauvaise compréhension du processus "emerge".

Avec Gentoo, un package a certaines dépendances obligatoires et d'autres optionnelles. Tu n'as aucun contrôle (ou presque) sur les dépendances obligatoires car sans elles, le package ne fonctionnerait pas. Les flags de la variable USE déterminent les dépendances optionnelles.

Si tu emerge un package -disons PHP- sans une de ses dépendances -disons mhash- , tu obtiendras un PHP qui ne sait pas ce qu'est mhash, quand bien même tu viendrais à installer par la suite mhash.

Pour que PHP supporte mhash, tu dois lui spécifier (en ajoutant mhash à la variable USE, via /etc/make.conf ou /etc/portage/package.use) et re-emerge PHP.

Je te conseille d'emerge ufed pour manipuler la variable USE avec plus d'aisance, ainsi que de te référer à la documentation Gentoo. Les problèmes les plus basiques y sont très bien solutionnés.

----------

## Eva

Grosnours

Je ne suis pas sûre, effectivement, de maîtriser tout cela.

Cependant j'ai souvenir d'avoir utilisé une commande du type :

```
USE="mhash" emerge php5-ovh
```

qui correspond sensiblement à ce que tu viens d'écrire. Je me trompe ? Si oui, où se trouve l'erreur ? Faut-il modifier php.ini ?

Merci en tout les cas de ton explication

----------

## nemo13

 *Eva wrote:*   

> avoir utilisé une commande du type :
> 
> USE="mhash" emerge php5-ovh
> 
> qui correspond sensiblement à ce que tu viens d'écrire. Je me trompe ? Si oui, où se trouve l'erreur 

 M.elle bonjour,

oui et non

oui dans un premier temps : cet emerge présent supportera mhash

non pour les emerges futurs car tu as placé ton use "en ligne de commande" ce qui implique qu'elle n'est valable que pour cette action.

Si tu veux de la persistance :

ou 

tu place mhash dans /etc/make.conf ---> tous les paquet succeptibles de l'utiliser , l'utiliseront

ou 

tu crées le fichier /etc/portage/package.use et tu mets dedans :

dev-lang/php-5 mhash      ------> seul ce paquet implémentera cette option

 :Wink:  je redis exactement ce que t'as dit grosnounours  :Wink: 

( aus fôtes d'orthographe près ; je deviens dix-ortografik )

Crée un joli Blog, nous viendrons le visiter.

----------

