3

Mac OSXでmemcacheを有効にしてApacheで動作させる方法を一生理解できません。memcache をインストールしましたが、php コマンド ラインで機能していることを確認できます。

次のコマンド:

php --ri memcache

memcache がサポートされていることを報告します。

ただし、phpinfo() を実行するローカル テスト スクリプトをブラウザにロードすると、memcahe がインストールされていることが報告されません。新しい memcache オブジェクトをインスタンス化するスクリプトをブラウザで実行すると、次のように報告されます。

Fatal error: Class ‘Memcache’ not found

私はphp.iniを編集し、extensions=memcache.soを追加しました

システム環境設定->共有に移動し、Web共有を無効にしてから有効にして、Apacheを再起動しました。コマンドラインからsudo apachectl restartを使用してApacheを再起動しようとしました。

ブラウザから実行したときにphpがmemcacheを認識できない原因は何ですか?

ありがとう!

4

3 に答える 3

1

おそらく、ディレクトリに memcache.so 拡張機能がインストールされているため、*/no-debug-non-zts-*(Linux の場合も同様) 面倒な場合があり、php.ini がこのディレクトリを参照しない場合があります。php.ini の拡張機能ディレクトリを変更するか (これにより他のものが壊れる可能性があります)、ディレクトリ内の memcache.so ファイルへのシンボリック リンクを作成することをお勧めします*/no-debug-non-zts-*

私の場合、これは次のとおりです。

ln -s /usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so /usr/lib64/php/modules/memcache.so

これに加えて、memcache.so ファイルのアクセス許可を確認し、実行可能 (755) であることを確認します。私の場合、これは次のとおりです。

chmod 755 /usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so

それが私の最後の提案です:)

于 2009-05-17T08:16:16.907 に答える
0

確かに、コマンド ライン php と mod_php は異なるバージョンの php.ini を使用しているようです。

于 2010-12-09T03:17:51.737 に答える
-1

memcache を何に使用していますか? どのように開始していますか?マシンでも memcached を実行していますか?

これは特にMacの回答ではありませんが、うまくいけば、実行ルートに沿って設定されることを願っています。これが明らかな場合は申し訳ありません.

Mac または Mac が memcached ポートでアクセスできる別のマシンで memcached を実行する必要があります。

Mac の memcached に関する特定のドキュメントがあります - http://memcached.darwinports.com/

また、memcache にキャッシュさせたいものすべてに memcache を使用するように php を設定する必要があることを忘れないでください。たとえば、セッションを処理するために memcache を使用するなど、関連する PHP 設定を変更します。

session.save_handler = ファイル
は次のように変更されます:
session.save_handler = memcache

session.save_path="tcp://:11211?persistent=1&weight=1&timeout=1&retry_interval=2"

これが何らかの形で役立つことを願っています。

http://www.of-networks.co.uk

于 2009-05-15T07:26:34.513 に答える