Extension PHP chargée en ligne de commande (cli) mais non chargée par apache

Mise à jour finale

Problème résolu.

La façon dont je résous le problème est de réinstaller Apache et PHP entièrement depuis la source en suivant les instructions du lien suivant.

http://dan.drydog.com/apache2php.html

Ensuite, faites l’extension en construisant l’extension directement dans PHP en suivant les instructions du lien ci-dessous.

La seule chose est que les binarys ne sont que dans le chemin spécifique, ce qui, à mon avis, est un problème facile à résoudre.

Merci à tous, ceci est mon premier post dans Stackoverflow et je passe une journée entière à faire ma première extension php. Bien qu’un peu dur, mais j’aime ça! :RÉ

Question originale

J’essaie de construire une extension php en suivant les instructions du lien suivant:

http://docstore.mik.ua/orelly/webprog/php/ch14_03.htm

Je construis l’extension de ‘rot13’ dans le php en procédant comme suit

./buildconf ./configure --enable-rot13 make sudo make install 

Ensuite, j’ai testé l’extension par la ligne de commande php. La sortie est exactement la même que l’article ci-dessus.

Je suppose qu’après avoir construit l’extension dans PHP lui-même, je n’ai pas besoin de me soucier du fichier php.ini. Ensuite, j’essaie de tester l’extension dans le navigateur, je découvre que la page phpinfo () ne montre rien de la nouvelle extension alors que la commande php -m montre que mon extension est chargée. J’ai vérifié le journal apache2, il n’y a pas d’erreur.

J’ai googlé pendant près d’un jour et n’ai aucune idée. Certains threads sont similaires dans stackoverflow mais pas de solutions de travail réelles.

Mon système est Ubuntu 11.10 et php 5.3.10 et apache2.2.20.

Si vous avez des indices, aidez-les. Merci!

Mettre à jour:

J’ai mis l’extension = rot13.so dans le fichier php.ini sur le chemin de /etc/php5/apache2/php.ini mais maintenant, chaque fois que je redémarre le serveur apache2, j’ai l’erreur suivante.

 PHP Warning: PHP Startup: rot13: Unable to initialize module Module comstackd with build ID=API20090626,TS,debug PHP comstackd with build ID=API20090626,NTS 

Ces options doivent correspondre à Inconnu sur la ligne 0

Quelqu’un at-il une idée de ce qui a causé cette faute?

BTW, quand je comstack l’extension, j’ai utilisé le ./configure –enable-rot13 –with-php-config = / usr / local / bin / php-config pour m’assurer qu’il utilise le fichier de configuration de php.

Mettre à jour à nouveau:

Je découvre que le phpinfo () de la page Web a une version différente de php -i, je reçois de la ligne de commande … Comment est-ce étrange? Je vais essayer de google comment comprendre ce conflit.

Dans Ubuntu, il y a 2 fichiers php.ini, un pour CLI et un pour apache.

Par défaut, ils se trouvent dans /etc/php5/cli/php.ini et /etc/php5/apache2/php.ini .

Dans votre cas, vous devez également activer l’extension dans le fichier apache2 php.ini.