PHPめも

PHPのセッションはファイルに書き出すことが一般的だと思うが、サーバが複数台に分かれた場合に共有できない。

解決方法としては以下のうちどれかといったところか。

memcachedの利用事例もあるようなので、この解決策が良さげ。
memcachedとmemcacheがあるがmemcachedの方が早いみたい。

memcachedのインストール

# yum install memcached libmemcached php-pecl-memcached

バージョンを確認

$ memcached -h | head -n1
memcached 1.4.15

設定変更は以下のファイルを編集
DDoS攻撃のほか、キャッシュデータを第三者に参照され、情報漏洩が発生する可能性があるために接続制限をかけます。

# vi /etc/sysconfig/memcached
OPTIONS="-l 127.0.0.1 -U 0"

自動起動の設定

# systemctl enable memcached

起動

# systemctl start memcached

ステータス確認

# systemctl status memcached

.htaccess

php_value session.save_path "localhost:11211"
php_value session.save_handler memcached

動作確認

telnetでおしゃべりしてみます。

$ telnet localhost 11211
set hoge 0 100 6
hogege
STORED
get hoge
VALUE hoge 0 6
hogege
END
quit
Connection closed by foreign host.

ツールでキャッシュされているか確認。

$ memcached-tool localhost dump
Dumping memcache contents
  Number of buckets: 1
  Number of items  : 1
Dumping bucket 1 - 1 total items
add hoge 0 1528106584 6
hogege

参考サイト


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS