# Re-compiler php sur SL



## Moof2 (13 Décembre 2009)

Bonjour à tous, 

Tout d'abord désolé si je poste dans la mauvaise section, j'ai hésité entre développement Web et cette section-ci, mais ma question ne porte pas sur un script php mais sur l'installation même de php et l'activation de certaines de ses extensions sur un serveur.

Le serveur en question, c'est mon propre macbook que j'utilise pour développer des sites web. Comme j'ai besoin de la fontion php imagettfbbox, je dois installer sur ma bécane la bibiothèque FreeType. Sauf que je n'y comprends vraiment rien. Je lis sur des sites qu'il faut recompiler php avec l'extension freetype, mais je n'ai pas compris comment on recompile. Chuis bien allé voir ici, mais là encore c'est du chinois pour moi tout ça.

Bref je ne suis pas doué, et je me demandais si il existait un tutorial pour les nuls sur internet sur comment installer Freetype ou recompiler php avec cette extensions, tutorial du genre "ouvre le terminal, entre 'cd ..', ..." pour les grosse quiche comme moi 

Merci !


----------



## grumff (13 Décembre 2009)

Si t'as besoin d'extensions supplémentaires, et que recompiler php ne te parle pas plus que ça, tourne toi plutôt vers mamp ou les scripts d'install de Marc Liyanage : http://www.entropy.ch/software/macosx/php/


----------



## Moof2 (13 Décembre 2009)

grumff a dit:


> Si t'as besoin d'extensions supplémentaires, et que recompiler php ne te parle pas plus que ça, tourne toi plutôt vers mamp ou les scripts d'install de Marc Liyanage : http://www.entropy.ch/software/macosx/php/


Merci pour ta réponse. En effet, recompiler php ne ma parle pas du tout :S

J'ai tenté les scripts d'install de Marc Liyanage, résultat, le serveur le répond plus...


> Safari ne parvient pas à ouvrir la page « http://127.0.0.1/~monusername/... » car le serveur a inopinément interrompu la connexion. Ceci arrive parfois lorsque le serveur est occupé


(je précise que j'ai suivi à la lettre toutes ses instructions pour installer php5.3, j'ai ensuite redémarré apache en désactivant puis réactivant le partage web).

Je reviens donc à ma première question, comment on compile soit même ? Au delà du problème d'origine qui est de pouvoir utiliser la fonction php imagettfbbox ça m'intéresse de savoir comment compiler, pour ma culture 

Edit: en attendant je remets mon truc en état avec mon clone, et je regarde ce que ça donne ensuite avec MAMP.


----------



## grumff (14 Décembre 2009)

Bah, compiler sur le principe c'est simple, tu télécharges php sur le site officiel, tu trouves les bons paramètres à passer au configure pour installer toutes les extensions que tu veux, il te faut x-code (à charger sur le site développeur d'apple ou sur le dvd d'install du système) pour pouvoir compiler, et ensuite c'est la procédure classique :
./configure (avec tous les paramètres voulus)
make
sudo make install

Après on a parfois des surprises si il manque certaines dépendances. =) Bon courage. 

Tu peux aussi essayer de réparer ton install, en principe les scripts de Marc Liyanage sont fiables, essaye de démarrer apache en ligne de commande pour voir s'il te met une erreur plus explicite :
apachectl start

Bon et sinon bien sûr t'as mamp, c'est un peu la solution de facilité, et un peu dommage parce que tu profites plus de l'intégration au système et tu réinstall quelque chose qui est déjà sur ton mac, mais bon, en principe ça marche bien.


----------



## Moof2 (14 Décembre 2009)

grumff a dit:


> Bon et sinon bien sûr t'as mamp, c'est un peu la solution de facilité, et un peu dommage parce que tu profites plus de l'intégration au système et tu réinstall quelque chose qui est déjà sur ton mac, mais bon, en principe ça marche bien.


Bien d'accord..



grumff a dit:


> Tu peux aussi essayer de réparer ton install, en principe les scripts de Marc Liyanage sont fiables, essaye de démarrer apache en ligne de commande pour voir s'il te met une erreur plus explicite :
> apachectl start


Alors j'ai tenté la ligne de commande pour lancer apache. Ca lance bien apache mais aucune erreur ne s'affiche dans terminal... Je suis allé voir dans les logs erreur d'apache (dans /var/log/apache2).
Au lancement d'apache :

```
[Mon Dec 14 21:58:08 2009] [notice] Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8k DAV/2 PHP/5.3.0 configured -- resuming normal operations
```
Lorsque j'essaie d'accéder à une page avec Safari :

```
[Mon Dec 14 22:00:07 2009] [notice] child pid 805 exit signal Segmentation fault (11)
[Mon Dec 14 22:00:07 2009] [notice] child pid 798 exit signal Segmentation fault (11)
[Mon Dec 14 22:00:08 2009] [notice] child pid 806 exit signal Segmentation fault (11)
```
Je ne sais pas si ça vous parle, moi pas en tout cas 

Sinon, les scripts de Marc Liyanage, ils seraient pas pour 10.5 only par hasard ? Je tourne avec 10.6.


----------



## grumff (15 Décembre 2009)

Moof2 a dit:


> Sinon, les scripts de Marc Liyanage, ils seraient pas pour 10.5 only par hasard ? Je tourne avec 10.6.



Je suis pas passé voir dernièrement, mais en général y'a plusieurs versions et les explications qui vont avec. Mais là, de toute évidence, y'a un soucis, le segmentation fault c'est pas vraiment le genre de choses qui devrait se produire, ni qui puisse t'aider à cerner le problème. Au pire tu dois pouvoir revenir en arrière, je crois que le script s'installe relativement indépendamment du serveur de base d'os x, genre il doit ajouter une inclusion de fichier à la fin du httpd.conf, il doit suffir de le commenter, du moins c'était comme ça la dernière fois où j'ai utilisé le script, y'a 5 ans au moins


----------



## tatouille (15 Décembre 2009)

sudo port install php5-something

sudo port install php5-gd

http://www.macports.org/


```
sudo port install \
apache2 \
memcached \
mysql5 php5 \
php5-sqlite  \
php5-mysql  \
php5-mcrypt \
php5-zip  \
php5-curl \
php5-memcache  \
php5-mbstring \
php5-gd
```
sudo /opt/local/etc/LaunchDaemons/org.macports.mysql5/mysql5.wrapper start
sudo /opt/local/etc/LaunchDaemons/org.macports.memcached/memcached.wrapper start
sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper start

mkdir -p Projects/www
cd Projects/www
ln -s /opt/local/apache2/htdocs www.local
sudo chown ME /opt/local/apache2/htdocs


----------



## Moof2 (15 Décembre 2009)

grumff a dit:


> Bah, compiler sur le principe c'est simple, tu télécharges php sur le site officiel, tu trouves les bons paramètres à passer au configure pour installer toutes les extensions que tu veux, il te faut x-code (à charger sur le site développeur d'apple ou sur le dvd d'install du système) pour pouvoir compiler, et ensuite c'est la procédure classique :
> ./configure (avec tous les paramètres voulus)
> make
> sudo make install



Je viens de tenter ça, et ça foire lorsque je lance le .configure (pour les paramètres du configure, j'ai mis ceux du php installé par défaut sur snow leopard en regardant dans la section "Configure Command" du phpinfo(). Ca me donne l'erreur suivante :

```
loading cache ./config.cache
checking for Cygwin environment... no
checking for mingw32 environment... no
checking for egrep... grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking host system type... i686-apple-darwin10.2.0
checking target system type... i686-apple-darwin10.2.0
checking for gcc... no
checking for cc... no
configure: error: no acceptable cc found in $PATH
```
What's wrong ?




tatouille a dit:


> sudo port install php5-something
> 
> sudo port install php5-gd
> 
> ...


Bon ben ça bloque à la première étape (on est pas sorti de l'auberge) 

```
--->  Computing dependencies for php5Error: Unable to execute port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?
```

Je vous l'ai dit que j'étais pas doué :S

D'ailleurs, ça sert à quoi macport ? J'ai bien lu sur leur site, mais c'est pas bien clair dans ma tête..
Merci de votre aide

---------- Nouveau message ajouté à 12h34 ---------- Le message précédent a été envoyé à 11h00 ----------

Bon j'ai compris.... je n'avais pas correctement installé Xcode :S
Désolé, je sors....
Et je reviens si j'y arrive toujours pas


----------



## Moof2 (15 Décembre 2009)

Ca y est j'ai réussi !!
Après 2 jours d'arrachage de cheveux 

Bon si y a un pauvre paumé comme moi qui se pose un jour la question, j'ai fait comme ça pour compiler php 5.3 avec Freetype sur Snow Leopard :
- télécharger libjpeg et l'installer dans /usr/local
- télécharger libpng et l'installer dans /usr/local
- télécharger freetype et l'installer dans /usr/local
- télécharger les sources de  php5.3 et les mettre dans /var/tmp/apache_mod_php/apache_mod_php-53~1/php
Taper dans terminal :

```
'/var/tmp/apache_mod_php/apache_mod_php-53~1/php/configure' '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-dependency-tracking' '--sysconfdir=/private/etc' '--with-apxs2=/usr/sbin/apxs' '--enable-cli' '--with-config-file-path=/etc' '--with-libxml-dir=/usr' '--with-openssl=/usr' '--with-kerberos=/usr' '--with-zlib=/usr' '--enable-bcmath' '--with-bz2=/usr' '--enable-calendar' '--with-curl=/usr' '--enable-exif' '--enable-ftp' '--with-gd' '--with-jpeg-dir=/BinaryCache/apache_mod_php/apache_mod_php-53~1/Root/usr/local' '--with-png-dir=/BinaryCache/apache_mod_php/apache_mod_php-53~1/Root/usr/local' '-with-freetype-dir=/BinaryCache/apache_mod_php/apache_mod_php-53~1/Root/usr/local' '--enable-gd-native-ttf' '--with-ldap=/usr' '--with-ldap-sasl=/usr' '--enable-mbstring' '--enable-mbregex' '--with-mysql=mysqlnd' '--with-mysqli=mysqlnd' '--with-pdo-mysql=mysqlnd' '--with-mysql-sock=/var/mysql/mysql.sock' '--with-iodbc=/usr' '--enable-shmop' '--with-snmp=/usr' '--enable-soap' '--enable-sockets' '--enable-sysvmsg' '--enable-sysvsem' '--enable-sysvshm' '--with-xmlrpc' '--with-iconv-dir=/usr' '--with-xsl=/usr'
```
 puis

```
make
```
Comme ça foire, suivre les indications sur cette page => http://fgonline.free.fr/?p=491
Puis 
	
	



```
sudo make install
```
D'ailleurs si quelqu'un pouvait m'expliquer comment le mec qui a écrit cet article s'y est pris pour trouver la solution, ça m'intéresse 

Merci à tous


----------



## tatouille (15 Décembre 2009)

Moof2 a dit:


> Je viens de tenter ça, et ça foire lorsque je lance le .configure (pour les paramètres du configure, j'ai mis ceux du php installé par défaut sur snow leopard en regardant dans la section "Configure Command" du phpinfo(). Ca me donne l'erreur suivante :
> 
> ```
> loading cache ./config.cache
> ...



sudo port clean all
sudo port sync
sudo port selfupdate


----------



## grumff (15 Décembre 2009)

tatouille a dit:


> sudo port clean all
> sudo port sync
> sudo port selfupdate



Certe la solution est un peu plus classe. Faudra que je retourne voir un de ces jours, mais toutes les fois où j'ai eu besoin d'installer un truc, c'était ni sur macports ni sur fink. Donc j'ai un peu laissé de côté. C'est vraiment con qu'Apple nous mette pas ça en place, on doit bien avoir le seul unix où on ait autant à se faire chier pour compiler 3 programmes. PHP c'est quand même une blague, les build comme la doc pour la version mac sont complètement à la ramasse.


----------



## Moof2 (15 Décembre 2009)

tatouille a dit:


> sudo port clean all
> sudo port sync
> sudo port selfupdate



Euh.... ça fait quoi ça ?
Maintenant que ça marche, je touche plus à rien moi


----------



## grumff (15 Décembre 2009)

Ça c'était le préalable à l'install via macport en cas de soucis.


----------

