私はHomebrewを使用してすべてのインストールを行いましたが、ここで問題が発生しています...
だから私は、何らかの理由で「memcache」モジュールと「memcached」モジュールの両方を使用するPHPアプリケーションを持っています。なんでもいい。
システムはOSXLion、10.7.4です。Apacheは、AppleがOSに同梱しているApache/2.2.21のストックです。HomebrewのPHP5.3.14を使用しています。
必要なものをすべてインストールします。
brew install libmemcached memcached php53 php53-memcache php53-memcached
httpd.conf
そして、物事を構成します-PHP .soファイルを指すようにApacheを設定し、memcacheおよびmemcached拡張機能をphp.ini
アプリケーションをロードします...そしてhttpdがクラッシュします!
これが私が得るクラッシュダンプです(ロングダンプ):https ://gist.github.com/3125309
httpdをbrew uninstall libmemcached
バウンスすると、アプリケーションに正常にアクセスできますが、(dur)libmemcachedが見つからないため、memcachedは実際には機能しません。
memcachedをローカルで正しく機能させたいのですが、ここで何が起こっているのかわかりません。これはPHPからの問題にすぎません。Pythonのpython-memcached
モジュールを使用して問題なくアクセスできます(ただし、libmemcachedを使用しているかどうかはわかりません)。
何かご意見は?クラッシュダンプで役立つと思われるものは何も表示されません:(
編集:ああ、行番号は役に立ちました!関連するlibmemcachedソースのブロックは次のとおりです。
#ifdef HAVE_SNDTIMEO
if (server->root->snd_timeout)
{
struct timeval waittime;
waittime.tv_sec= 0;
waittime.tv_usec= server->root->snd_timeout;
int error= setsockopt(server->fd, SOL_SOCKET, SO_SNDTIMEO,
&waittime, (socklen_t)sizeof(struct timeval));
assert(error == 0);
}
#endif
それで、それはタイムアウトの問題のように聞こえますか?しかし、私のmemcachedはローカルホスト上にあります。タイムアウトしないはずです...おそらく正しいサーバーに接続しようとしていない場合を除きます。
それでも、なぜこれが完全なhttpdクラッシュを引き起こす必要があるのでしょうか。
EDIT2:SNDTIMEOとRCVTIMEOの両方を無効にして再コンパイルしましたが、今は問題なく稼働しています...それでも、A)configureスクリプトがそれらを有効にできると判断したのはなぜですか?B)httpdクラッシュが発生したのはなぜですか?