Azuki'sLog

都内で働くエンジニアのブログ!RubyとかPHPとか

Macでphp+memcachedの検証

家のmacphp+memcachedでセッション周りの動きを試したかった。
以下で検証できたので一先ずメモ。

memcached環境構築

  1. memcached+クライアントライブラリのインストール
    # 以下でmemcachedも一緒に入る
    brew install libmemcached
    
  2. memcached起動
    brew services start memcached
    
  3. 動作確認
    memstat --servers=localhost
    

php環境構築

  1. phpインストール
    brew install php
    
  2. 拡張モジュールのインストール
    pecl install memcached
    

検証開始!

  1. アプリディレクトリ作成
    mkdir ~/work/php/memcached
    cd ~/work/php/memcached
  2. phpファイル配置
    vi index.php
    
    <?php
    ini_set('session.save_handler', 'memcached');
    ini_set('session.save_path', 'localhost:11211');
    session_start();
    if (!isset($_SESSION['count'])) {
      $_SESSION['count'] = 1;
    } else {
      $_SESSION['count']++;
    }
    echo $_SESSION['count'];
    
  3. サーバ起動
    php -S localhost:8000
    

結果

  1. ブラウザ確認
    http://localhost:8000/にアクセス
    cookieにPHPSESSIDが追加され、値に乱数文字列
  2. memcachedの確認
    php.iniのmemcached.sess_prefixの値(デフォルト=memc.sess.)+cookieのPHPSESSIDの値がキーとなっていると(゚~゚)
    % memdump --servers=localhost | xargs memcat --servers=localhost --verbose
    key: memc.sess.um8gtcfetagps7u7ep5gc6b4sm
    flags: 0length: 10
    value: count|i:1;