php -v gibt das an
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match in Unknown on line 0
PHP Warning: PHP Startup: memcache: Unable to initialize module
Module compiled with module API=20060613
PHP compiled with module API=20090626
These options need to match in Unknown on line 0
bogus test name tests/
ps. Ich habe ein Upgrade von PHP 5.2 auf 5.3. vorher hat alles gut geklappt.
Wenn Sie die Version von PHP aktualisieren (insbesondere wenn Sie von Version XY zu Version XZ wechseln) , müssen Sie ) das PHP aktualisieren. Erweiterungen auch.
Dies liegt daran, dass PHP - Erweiterungen in C entwickelt wurden und den Interna von PHP "nahe" sind. Das bedeutet, dass die Erweiterung geändert werden muss, wenn sich die APIs dieser Interna ändern neu kompiliert werden, um die neuen Versionen zu verwenden.
Und zwischen PHP 5.2 und PHP 5.3 wurden, soweit ich mich erinnere, einige Änderungen an den internen Datenstrukturen vorgenommen, die von der PHP - Engine verwendet wurden - was bedeutet, dass Erweiterungen neu erstellt werden müssen -compiled, um diese neue Version dieser Datenstrukturen abzugleichen.
Wie Sie Ihre PHP - Erweiterungen aktualisieren, hängt davon ab, welches System Sie verwenden.
Wenn Sie Windows verwenden, finden Sie den .dll
für einige Erweiterungen hier: http://downloads.php.net/pierre/
Weitere Informationen zu den verschiedenen Versionen finden Sie in der linken Leiste von windows.php.net .
Wenn Sie unter Linux arbeiten, müssen Sie entweder:
pecl
, um die Quellen der betreffenden Erweiterungen erneut herunterzuladen und neu zu kompilieren.gerade
pecl uninstall module_name
dann
pecl install module_name
Ihr Problem liegt im Paket php5-dev. Ich denke, Sie sind von PHP5.2 einer älteren Linux-Version zu PHP5.3 gegangen. Ich tat dasselbe und als ich PHP 5.3 installieren konnte, gab es einen Konflikt mit php5-dev. Aus irgendeinem Grund wird es nicht auf die neue Version aktualisiert. Ich weiß nicht, warum das so ist und es ist mir egal, aber dies macht Ihre Erweiterung mit der älteren API-Version kompiliert, während PHP ofc mit der neueren API-Version ist. Was ich getan habe, um dieses Problem zu lösen, war:
Ich entfernte php5-dev mit Sudo apt-get remove php5-dev
, dann lief ich Sudo apt-get autoremove
, um die Reste loszuwerden, die mir Schwierigkeiten bereiteten, und danach habe ich gerade php5-dev wieder installiert. Sudo apt-get install php5-dev
.
Nachdem dies erledigt war, entfernte ich meinen Memcache mit Sudo pecl uninstall memcache
und installierte ihn erneut Sudo pecl install memcache
. Jetzt hatten sowohl das Modul als auch das PHP die gleiche API-Version, also wusste ich sofort, dass ich das Problem gelöst hatte :)
Ich hoffe es hilft.
Es ist möglich, dass die Module installiert sind, aber Ihre PHP.ini verweist immer noch auf ein altes Verzeichnis.
Überprüfen Sie den Inhalt von/usr/lib/php/extensions. In meinem gab es zwei Verzeichnisse: no-debug-non-zts-20060613 und no-debug-non-zts-20060613. Ändern Sie in Zeile 428 Ihrer php.ini Folgendes:
extension_dir = "/ usr/local/lib/php/extensions/kein debug-non-zts-20060613"
zu
extension_dir = "/ usr/local/lib/php/extensions/kein debug-non-zts-20090626"
Starten Sie dann Apache neu. Dies sollte das Problem beheben.
Ich hatte lange Zeit mit diesem Problem zu kämpfen und stellte fest, dass beim Ausführen von configure einfach der Pfad an das richtige php-config
-Tool übergeben wird.
In meinem Fall war es so
./configure --with-php-config=/usr/local/zend/bin/php-config
... Wenn Sie sich nicht sicher sind, führen Sie einen locate php-config
auf Ihrem Computer aus und finden Sie den richtigen unter den verschiedenen installierten Versionen.
Hoffe, das hilft jemandem in der Zukunft.
PS. Mein Standard php-config
wurde auf 20090926 gesetzt. Dies ist PHP 5.3. Diejenige, die ich manuell als Parameter für ./configure was
für PHP 5.4 eingegeben habe (2010 ...)
Ich hatte ein ähnliches Problem nach einem Upgrade von PHP 5.5 auf PHP 5.6. Die phpize
- und php-config
-Bibliotheken, die zum Kompilieren der phalcon-Erweiterung verwendet werden, waren noch die von PHP 5.5. Ich musste den folgenden Befehl ausführen:
Sudo apt-get install php5.6-dev
Es wird ein langer Stacktrace geben, die wichtigsten Informationen, die ich gesehen habe, waren:
update-alternatives: using /usr/bin/php-config5.6 to provide /usr/bin/php-config (php-config) in auto mode
update-alternatives: using /usr/bin/phpize5.6 to provide /usr/bin/phpize (phpize) in auto mode
Ich hoffe das hilft jemandem.
Ich hatte diesen Teil in meiner php.ini aktiviert
extension=php_memcache.dll
[Memcache]
memcache.allow_failover = 1
memcache.max_failover_attempts=20
memcache.chunk_size =8192
memcache.default_port = 11211
Nach dem Kommentieren dieser Zeilen wurde Composer in meinem Windows 10 installiert
Dieses Problem ist mir gerade passiert und wurde durch einfaches Erhöhen von Memory_limit von 32 M auf 64 M gelöst. Sie können den Wert in der Datei anpassen, in der die php.ini vorhanden ist
suchen Sie nach php.ini Wählen Sie dann die richtige Datei aus und suchen Sie nach memory_limit. Nach dem Ändern von müssen Sie den Apache/etc/init.d/httpd neu starten
Alles Gute.
In meinem Fall in php.ini
[CLDbg]
extension=php_cl_dbg_5_3_VC9.dll
clport=6000
Ich habe Codelobster entfernt, das eine andere Version von PHP unterstützt. Daher müssen Sie Folgendes aktualisieren:
[CLDbg]
;extension=php_cl_dbg_5_3_VC9.dll
;clport=6000
Ich würde den gleichen Fehler haben, auch nachdem ich die Module neu kompiliert hatte.
Aber ich habe es gelöst, du musst nur den absoluten Pfad deines PHP angeben.
Bevor Sie phpize machen, sollten Sie Ihren Pfad ($ PS1) so aktualisieren, dass er auf das neue PHP verweist! phpize verwendet Ihre Umgebung, und wenn Sie noch Spuren Ihrer alten PHP in Ihrem Pfad oder in anderen Teilen der Umgebung haben, werden die Dinge haarig!
In meinem Fall habe ich lnmp verwendet, um PHP mit Version 5.4.45 zu installieren. Aber weil ich php5-dev nach lnmp installiert habe (was vermutlich nicht erforderlich ist, wenn Sie lnmp installiert haben), zeigen meine phpize und php-config beide auf ältere Versionstools als php.
Ich löste dies, indem ich den Softlink von /etc/alternatives/phpize
und /etc/alternatives/php-config
in /usr/local/php/bin/phpize
und /usr/local/php/bin/php-config
änderte.
Ich hoffe, das ist hilfreich.