PHP uzantısı (memcache | memcached) (phpinfo gösteren) ama php-m ve php-i gösterilmiyor?

3 Cevap php

Ben kullandığınızda / yapılandırılmış yüklü olarak listelendiğini hem modülleri alıyorum:

php -m

ya da ben kullanıyorsanız:

php -i

ama ne zaman kullanmalıyım:

$m = new Memcache;
// or
$m = new Memcache();
// or
$m = new Memcached();
//or 
$m = new Memcached;

Ben şu hatayı alıyorum:

Fatal error: Class 'Memcached' not found

Apache kurulumu varsayılan OS X (10.5.7) ve - Ben bir Mac üzerinde çalışan am php. Ayrıca, ben 127.0.0.1:11211 bir cin olarak çalışan memcached ve php-memcached kütüphanenin ihtiyaç olarak libmemcache var. Ben kez apache ton yeniden ve hatta bir makine yeniden yaptık.

Modules / uzantıları komut satırında ama benim phpinfo sırıtmak () Herkes neden biliyor mu? Ben tam anlamıyla googling 3 saat sonra, ben hemen hazır vazgeçmek duyuyorum, stumped.

Ayrıca, aşağıdaki gibi benim phpinfo () Benim ini dosyaları çıkışları ve her ikisi de tam olarak aynı dosya vardır, lütfen unutmayın:

Configuration File (php.ini) Path:  /etc
Loaded Configuration File:  /private/etc/php.ini 

UPDATE:

Apache uzantısı yüklemek için başarısız oluyor.

[Fri May 14 04:22:26 2010] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/memcached.so' - (null) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/memcache.so' - (null) in Unknown on line 0

Neden veya nasıl bu olacağını bilen var mı? KESİNLİKLE yukarıda başvurulan dosyaların her ikisi de vardır. Ben sunucu arıza bu soruyu hareket mi?

3 Cevap

Webserverınız muhtemelen bağımsız (CLI) tercüman gelen kod ayrı bir bit olduğu, mod_php kullanıyor. Her ikisi de aynı ini dosyasını kullanarak, ve memcache uzatma ini dosyasında yapılandırılmış ise nedense, mod_php uzantısını yüklemek için başarısız olduğu gibi, o zaman sesler - başlatma hataları için webserver hatalar.log kontrol edin.

Bu mod_php memcache desteği (en uzantıları kod toplu çalışma süresi kadar bağlı olsa bile, php koduna bağlı bir saplama dosyası olması gerekir) olmadan derlenmiş olabilir. Ya da paylaşımlı nesne dosyası üzerinde izinleri sorun olabilir. Ya da webserver chroot'u çalışan ve (aynı zamanda ini dosyaları aynı yolu var görünüyor olsa da, bu farklı köklerden göreceli olduğu anlamına gelir) uzantısını bulmak mümkün olabilir.

HTH

C.

Ben sorunu izinleri etrafında döner şüpheli olur. Eğer comand satırından php çalıştırdığınızda, onu çağırarak kullanıcı olarak çalışır. Bir apache modülü olarak çalıştırıldığında, bu "kimse" olarak çalışır.

Ben memcached.so dosya veya dizin o öyle uygun izinlere sahip değil zannedebilir.

Ben bu yazı üzerine stumpled ve benim php -i in uzantısı değil phpinfo() olarak ile aynı sorunu yaşıyordu. Mine, çünkü selinux bir CentOS makinedeki bir izinleri sorun oldu. Ben sahipliğini ve izinlerini değiştirmek zorunda kaldı ve beklendiği gibi şimdi çalışıyor.