アーカイブ

‘Ubuntu’ カテゴリーのアーカイブ

MemcachedのインストールとPHPからのアクセス

2009 年 4 月 2 日

負荷分散システムでのデータキャッシュ化のため、memcachedを導入しました。

TCP/IP通信でリモートサーバのメモリにデータを保存することが出来ます。

技術的なことは他のサイトに譲るとして、導入方法です。

memcachedは元々DBのクエリキャッシュのために作られたようですが、

大抵のデータは格納できます。

Ubuntuからのインストールは非常に簡単で、synapticでmemcachedをインストールするだけです。

起動コマンドも簡単です。

memcached -p ポート番号 -m 最大メモリ -d

最大メモリが64MBであるなら、パラメータには64mと指定します。

これだけで、メモリキャッシュサーバの導入は終わり。

フロントエンドの例として、PHPで使用してみます。

PECLライブラリのインストールが必要ですが、これもsynapticからphp5-memcacheをインストールするだけです。

と思ったのですが、memcacheライブラリがロードされない・・・

/etc/php5/cli/conf.d/memcache.iniファイルの2行目で、memcache.soのロードがコメントアウトされていました。

viなどで、コメントアウトを取れば完成です。

簡単な動作例

$key = "test";
$m = new Memcache();
$m->connect("localhost", 10000); // localhostの10000番でmemcachedを起動したと仮定
$v = $m->get($key);
if($v === false) {
 $v = "memcached at ".date('Y/m/d H:i:s');
 $m->set($key, $v, 0, 30); // 30秒間キャッシュ
}
echo $v, "\n";

キャッシュの有効期限をなくすには、setメソッドの第4引数を0にします。

memcacheはセッションハンドラにも使えるので、便利です。

admin Ubuntu, プログラム小技 , ,

自動マウントできない

2009 年 3 月 10 日

USBハードディスクなどをPCに接続すると、自動的にマウントしてくれて便利なのですが、

先日nautilusで接続したハードディスクのプロパティを見て、「マウントポジション」を設定できることを発見。

そこで、「/media/backuphd1」を指定してみたところ、それ以降マウントできなくなってしまいました。

どうも、フルパスで設定するのではなく、文字列だけ指定しなければならないようです。

しかし!

設定を直す場所が見つかりません。

マウントしていないと、プロパティでvolumeタブが表示されないため、変更できないのです。

色々調べて、解決方法が分かりました。

1.トップのメニューバーを右クリックして、「メニューの編集」を選択

2.「システムツール」を選択し、「設定エディタ」をチェック

3.「システムツール」自体もチェック

4.メインメニューの編集ウィンドウを閉じる

5.「アプリケーションメニュー」-「システムツール」-「設定エディタ」を選択

6.ツリーから、/system/storage/drives を開く

7._org_….というフォルダを開く(いくつかある場合もあるので、中身を調べてください)

8.mount_optionという名前の値が、「/media/backuphd1」となっているので、「backuphd1」を修正

これで、正常にマウントできるようになりました。

admin Ubuntu , ,