Tidak dapat memuat ekstensi memcache.so


9

Saya membuat PHP dari sumber dengan perintah configure

'./configure' '--prefix=/usr/local/php-5.2.8' '--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d' '--with-apxs2=/usr/local/httpd/bin/apxs' '--with-mysql=/usr/local/mysql/' '--with-zlib' 

Saya memasang ekstensi memcache php:

wget http://pecl.php.net/get/memcache
tar -zxvf memcache-2.2.5.tgz
cd memcache-2.2.5
phpize
./configure --enable-memcache
make
make install

Saya menambah /usr/local/lib/php.in saya

extension=memcache.so

Reboot apache saya dan menjalankan php-m tetapi php sepertinya tidak memuat ekstensi memcache Saya mengikuti solusi ini dari situs ini http://www.howtoforge.com/forums/showthread.php?t=26554

Saya menambahkan path lengkap

extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so 

apache yang telah direstart Tapi itu tidak memuat ekstensi memcache! Saya google sekitar tetapi masalah yang sama! Bagaimana saya bisa memuat ekstensi ini _ _ "

Jawaban:


1

Pertama jalankan binary php Anda seperti

php -v

Seharusnya mengeluh bahwa php.ini Anda ingin memuat modul yang tidak dapat dimuat ...

Jika tidak mengeluh, jalankan

php --ini

Ini akan memberi Anda lokasi php.ini Anda (cukup sembunyikan yang salah: D)

Apakah ini membantu?


1

Masalahnya adalah ..., pada titik ini: wget http://pecl.php.net/get/memcache Alih-alih tar -zxvf memcache-2.2.5.tgz, Anda harus melakukannya tar -zxvf memcache(ini adalah nama file dari wget).

Setelah Anda mengekstrak file, Anda akan mendapatkan versi memcache terbaru, pada saat saya melakukan ini, saya mendapatkan folder memcache-3.0.8 .

Jadi, langkah selanjutnya adalah:

cd memcache-3.0.8 
phpize 
./configure --enable-memcache 
make
make install

Dan akhirnya, jangan lupa untuk menambahkan baris ini ke php.ini Anda:

extension = memcache.so

Dan restart Apache.


0

Apakah Anda yakin memcached dipasang di lokasi yang benar? Apa yang Anda dapatkan jika Anda menjalankan:locate memcache.so

Apakah memcached terinstal (biner)? Apakah itu memerlukan perpustakaan tambahan (libmemcache)?


Anda harus menggunakan find, bukan loc, mengingat bahwa itu mungkin belum ada di loc db.
— Cian

Daemon memcached berhasil diinstal! dan ketika saya menemukan ekstensi memcache, cari memcache.so /usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so /usr/local/src/memcache-2.2.5/.libs /memcache.so /usr/local/src/memcache-2.2.5/modules/memcache.so Saya pikir masalahnya adalah php tidak memuat ekstensi!
— billyduc

0

Tambahkan extension_dirarahan untuk memberi tahu PHP dari mana memuat ekstensi dan hapus jalur dari extensionarahan.

extension = memcache.so
extension_dir = /usr/local/lib/php/extensions/no-debug-non-zts-20060613

Kasihan aku! Itu tidak bekerja!
— billyduc

0

Satu hal yang membantu saya adalah menggunakannya

pecl uninstall memcache
pecl install memcache

Hal lain (ini hanya berlaku untuk versi php yang agak lama): http://www.hollub.at/phpmanual/ref.memcache.html mengatakan:

In order to use these functions you must compile PHP with Memcache support by using the --enable-memcache[=DIR] option. 

0

ini karena / var / tmp Anda terpasang dengan izin noexec

Anda dapat mencoba mengkompilasi ulang memcache menggunakan perintah fuenfundachtzig setelah menghapus sementara / var / tmp symlink dan membuat folder baru / var / tmp. (pengaturan ini mungkin berbeda dari server Anda)

#rm /var/tmp
#mkdir /var/tmp

#pecl install memcache

kemudian amankan kembali folder temp Anda

#rm -rf /var/tmp
#ln -s /tmp /var/tmp

baca lebih lanjut tentang cara mengamankan tmp di sini

dan cara menggunakan PECL dengan tmp yang dipasang dengan noexec


0

Jika PHP Anda sudah dikompilasi, cobalah untuk menghapus extension_dir dari php.ini Anda .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.