2010-08-19 19 views
2

Mon environnement de développement:PHP Extension: 'bonjour' Module déjà chargé in Unknown on line 0

Linux - Linux localhost.localdomain 2.6.9-42.

apache: 2.2.4

php: 5.2.3

j'ai écrit une extension php bonjour.

quand je fais le tester moi:

PHP Warning: Module 'bonjour' est déjà chargée dans Unknown on line 0

PHP Warning: Module 'bonjour' est déjà chargée dans Unknown on line 0

Je vérifie le php.ini, il n'y a qu'une extension de ligne = hello.so.

Je supprime extension = hello.so dans php.ini, puis effectuez un test avec succès, mais le module hello n'est pas chargé par le processus serveur Web.

Que dois-je faire?

+0

Chargez-le manuellement avec dl(). Si le message d'erreur persiste, il s'agit plus probablement d'une erreur de code/construction que d'un problème de configuration. – mario

+0

merci. J'ai essayé et le navigateur Web m'a montré: Attention: dl() [function.dl]: Non supporté par les serveurs Web multithread - utilisez extension =/usr/local/php/ext/hello.so dans votre php.ini –

+0

/usr/local/php/bin/php -c /usr/local/php/lib/php.ini -f /home/html/ext/hello_test.php Cette commande a été exécutée avec succès. –

Répondre

0

Je pense à se rappeler que le message d'erreur est réellement trompeur, dans mon cas (il y a quelque temps) j'ai eu un message similaire à cause d'un problème de liaison à l'intérieur du module.

+0

Merci, j'ai écrit une bibliothèque partagée php_help qui liée aux bibliothèques statiques boost_date_time.a et boost_thread.a et liée hello.so à libphp_help.so. quand je lance des commandes pour faire php_help, gcc me montrer le message d'avertissement *** Attention: Lier la libphp_help.la bibliothèque partagée contre la /usr/local/lib/libboost_date_time.a de bibliothèque statique *** est pas portable ! *** Attention: Lier la bibliothèque partagée libphp_help.la à la bibliothèque statique *** /usr/local/lib/libboost_thread.a n'est pas portable! Qu'est-ce que cela signifie? –

+0

Je ne peux pas trouver le fichier libphp_help.a après que la commande soit terminée. Mais libphp_help.un sera créé dans le dossier/usr/local/lib quand j'exécuterai la commande make install. Je pense que quelque chose ne va pas. php_help's makefile.am: AUTOMAKE_OPTIONS = étranger lib_LTLIBRARIES = libphp_help.la includes = -I/usr/local/include/boost-1_43 -I./include libphp_help_la_SOURCES =/src/php_help.cpp \ . \t \t \t \t \t \t \t \t \t \t \t ./src/log.cpp libphp_help_la_LIBADD =/usr/local/lib/libboost_date_time.a /usr/local/lib/libboost_thread.a -lpthread –

0

Il est un avertissement inoffensif, mais je vois habituellement quand les gens ont le même fichier INI en cours de traitement plusieurs fois (par exemple, si elles en ont un lien symbolique quelque part sous « Scannez ce répertoire pour les fichiers .ini supplémentaires »)

+0

Merci. Quels fichiers incluront php.ini? J'ai trouvé un seul fichier php.ini dans mon disque. –

0

Il semble que personne ne verra plus cette question, donc je vais dire ce que je pense. Make test démarrera le php et chargera le fichier d'extension make qui n'est pas dans le dir déclaré dans php.ini. Il doit y avoir un autre fichier d'extension qui dans le dir déclaré dans php.ini est déjà chargé par php. alors PHP a chargé deux extensions avec le même nom.