2009-06-02 7 views
0

Je suis en train d'installer ce module PHP à partir NYTimes (http://code.nytimes.com/projects/xslcache)XSLT problèmes de cache

Je suis en train de tomber, malheureusement, au dernier obstacle. Je l'ai installé, ajouté à mon php.ini, mais je reçois cette erreur lors de l'exécution dans mon code PHP.

Fatal error: Class 'xsltCache' not found in... 

Mon code php est tel que décrit par le site NYTimes

$xslt = new xsltCache; 

Toutes les idées pourquoi cela peut se produire?

Mon script d'installation du module est

cd ~ 
mkdir setups 
cd setups 
wget http://code.nytimes.com/downloads/xslcache.tar.gz 
tar -xvf xslcache.tar.gz 
cd xslcache 
phpize && ./configure --with-xslcache=/usr/lib/libxslt.so --with-xsl-exsl-dir=/usr/lib/libexslt.so 
make 
make install 

Et il semble fonctionner tout à fait bien, aucune erreur, php.ini est très bien. Quelque chose que j'ai notifié, il n'apparaît pas dans phpinfo().

+2

Pour les utilisateurs qui trouvent actuellement cette question: notez que xslcache avec PHP> = 5.4 doit être patché pour être compilé (le programme d'installation de Pecl échouera également). J'ai fait un court article ici pour ceux qui en ont besoin: http://michaelsanford.com/compiling-xslcache-0-7-1-for-php-5-4/ – msanford

Répondre

2

Vérifiez que vous avez ajouté l'extension au fichier php.ini correct.

Si vous avez un répertoire PHP, vous pouvez en avoir un, mais celui auquel vous voulez ajouter l'extension est probablement dans le répertoire de votre serveur.

I.E. Sur mon PC, le bon php.ini à modifier est apache \ bin \ php.ini

P.S. N'oubliez pas de redémarrer votre serveur.

0

Il semble que vous n'avez pas chargé l'extension dans votre fichier php.ini avec extension = xslcache.so. Si vous avez cette ligne dans votre fichier php.ini, vérifiez vos journaux d'erreurs et voyez si PHP a eu du mal à charger l'extension. Jeter un coup d'oeil ici mais question de capitalisation?

+0

Je l'ai ajouté au fichier php.ini , où pourrais-je localiser les journaux d'erreur relatifs à cela? – James

+0

En supposant Linux, et que vous exécutiez le script à partir d'Apache, vérifiez votre fichier apache error.log. Si vous avez un accès shell, essayez d'exécuter directement php. –

-1

Les documents API se réfèrent à la classe comme XSLTCache() mais la page de garde sur nytimes et votre code disent xsltCache(); Je ne peux pas dire d'après ce que j'ai lu ou ce que je peux trouver sur Google si les noms de classes PHP sont sensibles à la casse.

0

il est un problème de capitalisation, mais pas tout à fait ce que spliff suggère:

Si vous regardez this test include file sur le site lemonde, la capitalisation doit être:

$proc = new xsltcache; 
+0

Pourtant, si vous regardez dans php_xsl.c, il déclare la classe comme "XSLTCache". –

+0

oui, mais nous ne parlons pas du nom dans le code, nous parlons de la façon de l'inclure. Le lien que j'ai posté est le propre exemple des éditeurs de la façon de l'inclure. James doit changer xsltCache en xsltcache. :) –

+0

Je dois dire que ce n'est pas le problème, php est la plupart du temps insensible à la casse. – SeanJA

0

Serait-ce un problème d'autorisation sur le fichier /usr/lib/libexslt.so? Peut-être que php n'y a pas accès?