Heim >Backend-Entwicklung >PHP-Tutorial >Probleme, die durch die Koexistenz mehrerer PHP-Versionen verursacht werden

Probleme, die durch die Koexistenz mehrerer PHP-Versionen verursacht werden

WBOY
WBOYOriginal
2016-08-10 09:07:311185Durchsuche

Hier ist ein Server, der Nginx plus PHP-FPM verwendet. Da ich nun eine neue Redis-Erweiterung installieren möchte, habe ich das Quellcodepaket der Redis-Erweiterung heruntergeladen offizielle Website und kompiliert, schließlich extension=redis.so zu php.ini hinzufügen und schließlich php-fpm neu starten.

Es ist also ein Fehler aufgetreten, was bedeutet, dass die Version der PHP-Erweiterung, die ich kompiliert habe, unterschiedlich war

<code>PHP Warning:  PHP Startup: redis: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20121212</code>

Ich habe den Grund wahrscheinlich herausgefunden, weil die Version, die php-fpm -v verwendet, 5.5 ist, die von php -v angezeigte Version 5.3 ist und phpize 5.3 verwendet.

Also habe ich die kompilierte SO-Datei gelöscht, das Quellcodepaket erneut dekomprimiert und kompiliert und die 5.5-Version von PHPIZE verwendet. Beim Neustart stellte ich fest, dass sie immer noch dieselbe war und keinen Nutzen hatte.

<code>$ /usr/local/php/bin/phpize -v
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212

$ sudo /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make
$ sudo make install</code>

Wie soll ich diese Situation lösen? Es ist für mich unmöglich, Version 5.3 zu löschen, da sie auf dem Server liegt und möglicherweise von anderen verwendet wird.

Antwortinhalt:

Hier ist ein Server, der Nginx plus PHP-FPM verwendet. Da ich nun eine neue Redis-Erweiterung installieren möchte, habe ich das Quellcodepaket der Redis-Erweiterung heruntergeladen offizielle Website und kompiliert, schließlich extension=redis.so zu php.ini hinzufügen und schließlich php-fpm neu starten.

Es ist also ein Fehler aufgetreten, was bedeutet, dass die von mir kompilierte PHP-Erweiterung eine andere Version verwendet hat

<code>PHP Warning:  PHP Startup: redis: Unable to initialize module
Module compiled with module API=20100525
PHP    compiled with module API=20121212</code>

Ich habe den Grund wahrscheinlich herausgefunden, weil die Version, die php-fpm -v verwendet, 5.5 ist, die von php -v angezeigte Version 5.3 ist und phpize 5.3 verwendet.

Also habe ich die kompilierte SO-Datei gelöscht, das Quellcodepaket erneut dekomprimiert und kompiliert und die 5.5-Version von PHPIZE verwendet. Beim Neustart stellte ich fest, dass sie immer noch dieselbe war und keinen Nutzen hatte.

<code>$ /usr/local/php/bin/phpize -v
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212

$ sudo /usr/local/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make
$ sudo make install</code>

Wie soll ich diese Situation lösen? Es ist für mich unmöglich, Version 5.3 zu löschen, da sie auf dem Server liegt und möglicherweise von anderen verwendet wird.

Machen Sie den PHP-Konfigurationspfad korrekt

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn