こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

memcached を起動できません。

■質問内容
memcached を起動できません対処方法を教えてください。
memcached を起動できないとサーバの設定が前に進まないので困っています。
■詳細
OS:CentOS 6.4
インストールパッケージ:
memcached-1.4.4-3.el6.x86_64
memcached-devel-1.4.4-3.el6.x86_64

おこなった作業は以下です。
◆インストール
# yum install memcached-1.4.4-3.el6.x86_64 memcached-devel-1.4.4-3.el6.x86_64

◆memcachedの設定
# vi /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
#CACHESIZE="64"
CACHESIZE="512"
OPTIONS=""

#LOG
OPTIONS="-vv 1>> /var/log/mem.log 2>> /var/log/memcached.log"

※デフォルトの設定から、キャッシュサイズとログ取得の設定のみ変更しました。

◆起動
# service memcached start

◆起動確認
# service memcached status
memcached dead but subsys locked

memcached dead but subsys locked が出力されていましたので、以下のコマンドを実行しロックファイルを削除しました。

# rm /var/lock/subsys/memcached

その後、memcached を再起動しても状態変わらずです。

なお、ログには以下に出力されていました。
# cat /var/log/memcached.log
Failed to open library "default_engine.so": default_engine.so: cannot open shared object file: No such file or directory

システム全体をファイル検索したところ、たしかにdefault_engine.soはみつかりませんでした。


default_engine.soがないために、memcachedが起動しないと考えていますが、default_engine.soをインストールする方法を調べましたがわかりませんでした。

投稿日時 - 2013-09-25 13:44:57

QNo.8279120

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

元をたどると、Linux系ソフトに多い、コンパルが必要なようです。元をたどれば、何がインストールされるか見えるかと。ご存知のように ".so"などとファイル名に付くような場合、ライブラリーファイルである可能性が高いですね。通常、OSにデフォルトについているか、自信でコンパイル、またはリコンパイル(リンカーで追加するだけ)して、ライブラリーに追加します。

インストーラーつきだと、だいたい自動化され、/lib /usr/lib などとなるようなパスに格納されているはずです。存在しない場合、違うパスにストアーされたか、相対パス(インストール先からのライブらラリーフォルダーに格納されています)に存在します。なければ、自分で make する必要があります。

またライブラリーでない場合、ダミーファイルでスクリプトになっている可能性もあります。

http://php.net/manual/ja/memcache.installation.php

違うフォルダーにある場合、環境変数に ライブラリーのパスを追加するか、起動オプションに指定するか、ラッパーに追加することになります。

ちなみに
>◆起動確認

は、プロセスを必ず確認してください。基本中の基本です。起動前、起動中、起動後、停止中、停止後、何がどうなっているのか、プロセスを追跡するのが、サーバー管理の基本中の基本です。

と言うと、よく新人が陥りやすいミスが、再起動していない状態で何度も繰り返していることですね。他のプロセスやデーモンが関係しているときや(初期化されていない)、関係しているプロセスをみのがしていることが多い。

とりあえず、取り急ぎ注意点だけ。

投稿日時 - 2013-09-25 15:37:02

補足

ご回答ありがとうございました。

まず、コンパイルとmakeとパスを通す件についです。
default_engine.soがシステムに存在していないと記述しております。
ですので、今回の件はパスは関係ありません。パッケージになければコンパイルするためソースを探す必要があります。

では、default_engine.soのソースはどこにあるのでしょうか。
まずそこから知りたかったのです。

ご回答頂いて申し訳ないのですが、ライブラリのインストール方法は、私の知りたい内容ではありませんでした。

もうひとつプロセス確認については、確認済みとなりmemcachedのプロセスは起動していませんでした。

大変申し訳ございませんが、今回頂いたご回答は、私の知りたい内容ではありませんでした。

投稿日時 - 2013-09-25 15:55:50

あなたにオススメの質問