Bon, j'ai fini par trouver une solution.
En fait, il faut d'abord compiler en désactivant le mode CGI, renommer le binaire php, puis recompiler avec le mode CGI. De cette manière on a 2 binaires, un en mode CLI et l'autre en mode CGI.
Pour ce faire, il faut aller modifier l'ebuild :
Code:
# cd /usr/local/portage-ovh/dev-lang/php4-ovh
# vi php4-ovh-4.4.4.ebuild
Dans la fonction src_compile(), à la ligne 92, modifier
--enable-cgi par
--disable-cgi
Sauvegardez et quittez. Il faut maintenant reconstruire l'ebuild et faire un emerge du paquet modifié :
Code:
# ebuild php4-ovh-4.4.4.ebuild digest
# emerge php4-ovh
Là vous en avez pour un petit moment, le temps que PHP recompile entièrement. Un fois que c'est terminé, vous pouvez vérifier que PHP est bien en mode CLI :
Code:
$ php -v
PHP 4.4.4 (cli) (built: Jan 21 2008 18:48:56)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
Le problème, c'est que maintenant seul la version en ligne de commande fonctionne ! Vos sites en PHP ne peuvent plus fonctionner. Pas de panique, nous allons faire une copie du binaire php que nous venons de compiler, histoire de pouvoir le réutiliser, puis nous allons à nouveau compiler PHP mais ce coup-ci en mode CGI.
Code:
# mv /usr/local/php4/bin/php /usr/local/php4/bin/php.cli
# ln -s /usr/local/php4/bin/php.cli /usr/local/bin/php.cli
La deuxième ligne de commande nous permettra d'avoir la commande php.cli accessible depuis n'importe où.
Retournons maintenant compiler PHP en mode CGI :
Code:
# cd /usr/local/portage-ovh/dev-lang/php4-ovh
# vi php4-ovh-4.4.4.ebuild
Toujours à la ligne 92 du fichier ebuild, remettre
--enable-cgi à la place de
--disable-cgi
Sauvegardez et quittez. Il faut maintenant reconstruire l'ebuild et faire un emerge du paquet modifié :
Code:
# ebuild php4-ovh-4.4.4.ebuild digest
# emerge php4-ovh
Une fois terminé, vous pouvez vérifier que php est bien en mode CGI :
Code:
$ php -v
PHP 4.4.4 (cgi) (built: Jan 21 2008 18:54:46)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
Notez la mention de CGI.
Maintenant vous avez les 2 binaires dans les 2 modes. Si vous voulez utiliser php en ligne de commande, utilisez
php.cli et non plus
php
Code:
$ php.cli monscript.php
Voilà, vous pouvez bien sûr faire la même chose pour PHP5, la manipulation est la même, mais en modifiant l'ebuild de PHP5...