设置Ubuntu上的内存缓存
本节提供在Ubuntu上安装内存缓存的说明。
由于PHP对memcache没有本机支持,因此您必须安装扩展以便PHP使用它。 有两个可用的PHP扩展,请务必解码要使用哪个PHP扩展:
在Ubuntu上安装和配置内存缓存
要在Ubuntu上安装和配置memcached:
-
作为具有
root
权限的用户,输入以下命令:code language-bash apt-get -y update
code language-bash apt-get -y install php5-memcached memcached
-
更改
CACHESIZE
和-l
的memcached配置设置:-
在文本编辑器中打开
/etc/memcached.conf
。 -
找到
-m
参数。 -
将其值更改为至少
1GB
-
找到
-l
参数。 -
将其值更改为
127.0.0.1
或localhost
-
将更改保存到
memcached.conf
并退出文本编辑器。 -
重新启动memcached。
code language-bash service memcached restart
-
-
重新启动Web服务器。
对于Apache,
service apache2 restart
-
继续下一部分。
在安装Magento之前验证memcached是否有效
Adobe建议测试memcached,以确保它在安装Commerce之前正常工作。 执行此操作只需要几分钟的时间,并且以后可以简化故障排除。
验证Web服务器是否识别memcached
要验证Web服务器是否能够识别memcached:
-
在Web服务器的docroot中创建
phpinfo.php
文件:code language-php <?php // Show all information, defaults to INFO_ALL phpinfo();
-
转到Web浏览器中的该页面。 例如:
code language-http http://192.0.2.1/phpinfo.php
-
确保memcached按如下方式显示:
验证您是否使用memcached版本3.0.5或更高版本。
如果memcached未显示,请重新启动Web服务器并刷新浏览器页面。 如果仍然不显示,请验证是否已安装
php-pecl-memcached
扩展。
验证memcached是否可以缓存数据
此测试使用PHP脚本来验证memcached是否可以存储和检索缓存数据。
有关此测试的更多信息,请参阅如何在Ubuntu上安装和使用Memcache教程。
在Web服务器的docroot中创建cache-test.php
,内容如下:
$meminstance = new Memcached();
$meminstance->addServer("<memcached hostname or ip>", <memcached port>);
$result = $meminstance->get("test");
if ($result) {
echo $result;
} else {
echo "No matching key found. Refresh the browser to add it!";
$meminstance->set("test", "Successfully retrieved the data!") or die("Could not save anything to memcached...");
}
其中<memcached hostname or ip>
是localhost
、127.0.0.1
或memcache主机名或IP地址。 <memcached port>
是侦听端口;默认情况下,11211
。
在Web浏览器中转到该页面。 例如
http://192.0.2.1/cache-test.php
第一次转到该页面时,会显示以下内容: No matching key found. Refresh the browser to add it!
刷新浏览器。 消息更改为Successfully retrieved the data!
最后,您可以使用Telnet查看memcache密钥:
telnet localhost <memcache port>
在提示下,输入
stats items
结果类似于以下内容:
STAT items:2:number 1
STAT items:2:age 106
STAT items:2:evicted 0
STAT items:2:evicted_nonzero 0
STAT items:2:evicted_time 0
STAT items:2:outofmemory 0
STAT items:2:tailrepairs 0
STAT items:2:reclaimed 0
STAT items:2:expired_unfetched 0
STAT items:2:evicted_unfetched 0
刷新内存缓存存储并退出Telnet:
flush_all
quit