facebook twitter hatena line email

「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対応===
+
===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=15");
+
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