Apache "modülü başlatılamadı" dir

9 Cevap apache

php-v Bu verir

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. Ben 5.3 php 5.2 den upgrade ettik. Bu her şey tamam çalıştı önce.

9 Cevap

Eğer PHP sürümünü güncellemek zaman (especially when going from version X.Y to version X.Z), you must update the PHP extensions de.


This is because PHP extensions are developped in C, and are "close" to the internals of PHP -- which means that, if the APIs of those internals change, the extension must be re-compiled, to use the new versions.

Ve, PHP 5.2 ve PHP 5.3 arasında, ben hatırlıyorum ne için, PHP motoru tarafından kullanılan iç veri yapılarında bazı değişiklikler olmuştur - uzantıları olan bu yeni sürümünü maç için, yeniden derlenmiş gerekir demektir veri yapıları.


How to update your PHP extensions will depend on which system you are using.

If you are on windows, you can find the .ddl for some extensions here : http://downloads.php.net/pierre/
For more informations about the different versions, you can take a look at what's said on the left-sidebar of windows.php.net.

Linux üzerinde iseniz, ya gerekir:

  • Dağıtım sağlayan Check ne
  • Ya da, pecl komutunu kullanmak söz uzantıları kaynaklarını yeniden indirmek ve bunları yeniden derlemek.

Senin sorunun php5-dev paketi içinde olduğunu. Ben PHP5.3 için eski bir linux sürümü üzerinde PHP5.2 gitti sanırım. Ben de aynı şeyi yaptım, ve ben php 5.3 yüklemek için yönetilen zaman php5-dev ile bir çatışma vardı. Nedense bu yeni sürüme yükseltilmiş almaz. Bilmem neden php ofc yeni API sürümü ile ise ancak bu, eski API sürümü ile derlenmiş sizin uzantısı yapar olduğunu ve umurumda değil. Ne ben bu sorunu çözmek için yaptım oldu:

I removed php5-dev with sudo apt-get remove php5-dev, then I ran sudo apt-get autoremove to get rid of the leftovers that were giving me the trouble, and after that I just installed php5-dev again. sudo apt-get install php5-dev.

Bu işlem sonra, ben sudo pecl uninstall memcache ile benim memcache çıkarılıp takılabilir tekrar sudo pecl install memcache. Şimdi modülü ve php de çok ben sorunu çözüldü olduğunu hemen anladık aynı API sürümü vardı :)

Umarım yardımcı olur.

sadece

pecl uninstall module_name

o zaman

pecl install module_name

Bu modüller yüklü olması mümkündür, ancak php.ini hala eski bir dizine işaret.

/ Usr / lib / php / uzantılarının içeriğini kontrol edin. No-debug-non-zts-20060613 ve no-debug-non-zts-20060613: Benimkinde, iki dizin vardı. Php.ini doğrultusunda 428 civarında, değiştirin:

extension_dir = "/ usr/local/lib/php/extensions/no-debug-non-zts-20060613"

karşı

extension_dir = "/ usr/local/lib/php/extensions/no-debug-non-zts-20090626"

Sonra apache yeniden başlatın. Bu sorunu çözmek gerekir.

Ben uzun bir süre bu konu ile mücadele ve configure çalıştırdığınızda, sadece ona doğru php-config aracı yolu geçmek öğrendim.

Benim durumumda, öyleydi

./configure --with-php-config=/usr/local/zend/bin/php-config 

Eğer emin değilseniz ..., makinenize bir locate php-config çalıştırın ve yüklü farklı sürümleri arasında doğru olanı bulmak.

Bu gelecekte birileri yardımcı olur umarım.

PS. Benim default php-config PHP 5.3 olan 20.090.926 için kuruldu. Ben elle ./configure was PHP 5.4 için bir parametre olarak girilen bir (2010 ...)

Eğer phpize önce, yeni PHP işaret etmek yolunu ($ PS1) güncellemek için emin olun! phpize çevrenizi kullanır, ve hala yolda veya çevrenin diğer bölgelerinde eski PHP izlerini varsa, işler kıllı alacaksınız!

Ben bile modülleri recompiling sonra aynı hata olur.

Ama sadece phpize mutlak yolunu belirtmek zorunda çözdük.

İşte php 5.5 ile çalışan biridir. İndir xampp 1.8.3 here ve here adlı memcache dll indir itibaren

Ne benim için çalıştı aşağıdakileri yapmak için basitçe oldu:

php.ini dosyasını açın.

DİNAMİK UZANTILAR başlığı altında, aşağıdaki satırı gibi açıklama

;extension=php_java.dll

Yeniden başlattım Apache ve tüm para cezası