memcache.so拡張機能をロードできません


9

PHPをソースから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' 

私はphp memcache拡張機能をインストールしました:

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

/usr/local/lib/php.inに追加します

extension=memcache.so

私のApacheを再起動してphp-mを実行しましたが、phpがmemcache拡張機能をロードしていないようですこのサイト http://www.howtoforge.com/forums/showthread.php?t=26554

フルパスを追加しました

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

Apacheを再起動しましたが、memcache拡張機能が読み込まれませんでした。私はググるが同じ問題!この拡張機能をロードするにはどうすればよいですか_ _ "

回答:


1

最初に次のようにphpバイナリを実行します

php -v

あなたのphp.iniがロードできないモジュールをロードしたいという不満を言うはずです...

文句を言わない場合は、実行します

php --ini

これにより、php.iniの場所がわかるはずです(編集が間違っている場合に備えて:D)

これは役に立ちましたか?


1

問題は...、この時点で:のwget http://pecl.php.net/get/memcache 代わりに tar -zxvf memcache-2.2.5.tgz、実行する必要がありますtar -zxvf memcache(これはwgetのファイル名です)。

ファイルを抽出すると、memcacheの最新バージョンが取得されます。これを行うと、フォルダーmemcache-3.0.8が取得されます。

したがって、次のステップは次のようになります。

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

そして最後に、この行をphp.iniに追加することを忘れないでください。

extension = memcache.so

そして、Apacheを再起動します。


0

memcachedが正しい場所にインストールされていますか?実行すると何が得られますか:locate memcache.so

memcachedはインストールされていますか(バイナリ)?追加のライブラリ(libmemcache)が必要ですか?


まだlocate dbにないかもしれないので、locateではなくfindを使うべきです。
Cian、

memcachedデーモンが正常にインストールされました!memcache拡張機能を見つけたら、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問題は、phpが拡張機能をロードしなかったことにあると思います。
billyduc

0

extension_dirディレクティブを追加して、拡張機能をどこからロードするかを指定し、extensionディレクティブからパスを削除します。

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

かわいそう!動かない!
billyduc 2009

0

私を助けた一つのことは使用することです

pecl uninstall memcache
pecl install memcache

別のこと(これはかなり古いPHPバージョンにのみ適用されます):http : //www.hollub.at/phpmanual/ref.memcache.htmlは次のように述べています:

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

0

これは、/ var / tmpがnoexec権限でマウントされているためです

/ var / tmpシンボリックリンクを一時的に削除して新しい/ var / tmpフォルダーを作成した後、fuenfundachtzigコマンドを使用してmemcacheを再コンパイルしてみることができます。(この設定はサーバーと異なる場合があります)

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

#pecl install memcache

次に一時フォルダを保護します

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

tmpの保護の詳細については、こちらをご覧ください

およびnoexecでマウントされたtmpでPECLを使用する方法


0

PHPをコンパイルしている場合は、php.iniからextension_dirを削除してみてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.