「Php/memcachedメモ」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→php8対応) |
(→rocky10でkyototycoonの場合) |
||
| (同じ利用者による、間の4版が非表示) | |||
| 行67: | 行67: | ||
*参考:http://php.net/manual/ja/memcached.sessions.php | *参考:http://php.net/manual/ja/memcached.sessions.php | ||
| − | === | + | ===php8エラー対応=== |
| + | ====macの場合==== | ||
| + | 警告がでて使えない。 | ||
| + | <pre> | ||
| + | Warning: session_start(): Unable to clear session lock record in | ||
| + | Warning: session_start(): Failed to read session data: memcached (path: localhost:11211) in | ||
| + | </pre> | ||
| + | 対応方法 | ||
| + | |||
| + | 修正前 | ||
<pre> | <pre> | ||
ini_set('session.save_handler', 'memcached'); | ini_set('session.save_handler', 'memcached'); | ||
| − | ini_set('session.save_path', "localhost:11211?persistent=1&weight=1&timeout=1&retry_interval= | + | ini_set('session.save_path', "localhost:11211"); |
| + | </pre> | ||
| + | 修正後 | ||
| + | <pre> | ||
| + | ini_set('session.save_handler', 'memcached'); | ||
| + | ini_set('session.save_path', "localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=2"); | ||
| + | </pre> | ||
| + | 参考:https://www.php.net/manual/en/memcache.ini.php | ||
| + | |||
| + | ====rocky10でkyototycoonの場合==== | ||
| + | 警告がでて使えない。 | ||
| + | <pre> | ||
| + | Warning: session_start(): Failed to write session lock: getaddrinfo() or getnameinfo() HOSTNAME LOOKUP FAILURE Warning: session_start(): Failed to write session lock: SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY | ||
| + | </pre> | ||
| + | |||
| + | 対応方法 | ||
| + | |||
| + | 修正前 | ||
| + | <pre> | ||
| + | ini_set('session.save_handler', 'memcached'); | ||
| + | ini_set('session.save_path', "localhost:11401?persistent=1&weight=1&timeout=1&retry_interval=2"); | ||
| + | </pre> | ||
| + | 修正後 | ||
| + | <pre> | ||
| + | ini_set('session.save_handler', 'memcache'); | ||
| + | ini_set('session.save_path', "tcp://localhost:11401?persistent=1&weight=1&timeout=1&retry_interval=2"); | ||
</pre> | </pre> | ||
| + | kyototycoonの相性なのかmemcacheを使う必要があった。 | ||
==memcache管理ツール== | ==memcache管理ツール== | ||
http://livebookmark.net/memcachephp/memcachephp.zip | http://livebookmark.net/memcachephp/memcachephp.zip | ||
*参考:http://d.hatena.ne.jp/shimooka/20080522/1211434381 | *参考:http://d.hatena.ne.jp/shimooka/20080522/1211434381 | ||
2026年4月10日 (金) 16:00時点における最新版
目次
memcachedダウンロード
http://jehiah.cz/projects/memcached-win32/ からバイナリをダウンロード
memcachedのサービス登録
cd D:\memcached-1.2.1-win32 memcached.exe -d install
memcachedのサービス削除
memcached.exe -d uninstall
memcachedのサービス実行
memcached.exe -d start
memcachedスタートバッチ(以下をmemcached_start.batで保存
d: cd D:\memcached-1.2.1-win32 memcached.exe -d start
phpにmemcache導入
php.iniで以下追加
extension=php_memcache.dll
memcacheの.dllを以下からダウンロードし
http://museum.php.net/php5/pecl-5.2.6-Win32.zip D:\php-5.2.6\extへ入れapache再起動。
http://shikii.net/blog/downloads/php_memcache-cvs-20090703-5.3-VC6-x86.zip (php5.3時
memcacheサンプル
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>
memcachedサンプル
$mc = new Memcached();
$mc->addServer("localhost", 11211);
$mc->set("foo", "Hello!");
$mc->set("bar", "Memcached...");
$arr = array(
$mc->get("foo"),
$mc->get("bar")
);
var_dump($arr);
sessionをmemcacheで使用
以下コードのみ設定し、普通にsessionを使えば、すぐ使える
ini_set('session.save_handler', 'memcache'); //これはmemcachedでなくmemcacheの方を使っている。
ini_set('session.save_path', 'tcp://localhost:11211');
memcacheをmemcachedで仕様
ini_set('session.save_handler', 'memcached'); //これはmemcacheでなくmemcachedの方を使っている。
ini_set('session.save_path', 'localhost:11211'); //こちらはtcp://がない
php8エラー対応
macの場合
警告がでて使えない。
Warning: session_start(): Unable to clear session lock record in Warning: session_start(): Failed to read session data: memcached (path: localhost:11211) in
対応方法
修正前
ini_set('session.save_handler', 'memcached');
ini_set('session.save_path', "localhost:11211");
修正後
ini_set('session.save_handler', 'memcached');
ini_set('session.save_path', "localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=2");
参考:https://www.php.net/manual/en/memcache.ini.php
rocky10でkyototycoonの場合
警告がでて使えない。
Warning: session_start(): Failed to write session lock: getaddrinfo() or getnameinfo() HOSTNAME LOOKUP FAILURE Warning: session_start(): Failed to write session lock: SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY
対応方法
修正前
ini_set('session.save_handler', 'memcached');
ini_set('session.save_path', "localhost:11401?persistent=1&weight=1&timeout=1&retry_interval=2");
修正後
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', "tcp://localhost:11401?persistent=1&weight=1&timeout=1&retry_interval=2");
kyototycoonの相性なのかmemcacheを使う必要があった。
memcache管理ツール
http://livebookmark.net/memcachephp/memcachephp.zip
