安装memcached和PHP5 memcache模块在Debian Etch(Apache2)

安装memcached和PHP5 memcache模块在Debian Etch(Apache2)

版本1.0
作者:Falko Timme

本指南介绍如何在Debian Etch系统中使用Apache2安装memcached和PHP5 memcache模块。 memcached是一个守护进程,可以将对象存储在系统的内存中(例如数据库查询的结果),可以极大地加速您的网站。 您可以通过网络使用memcached(即,将Web应用程序安装在一个服务器上,并将其记录在另一台服务器上),但通常您将其安装在一台服务器上,以避免网络开销。

应该注意的是,memcached是没有现成的解决方案来加速您的Web应用程序。 通常,您必须调整脚本(PHP,Perl等)以使用memcached,因此这需要一些工作。

本文档不附带任何形式的保证! 我不会保证这将为您工作!

1初步说明

我已经在Debian Etch服务器上测试了这个IP地址192.168.0.100 ,其中Apache2和PHP5已经安装并工作。 我将在本教程中使用Apache的默认文档root / var / www进行演示。 当然,您也可以使用任何其他vhost,但您可能必须调整本教程中使用的info.php文件的路径。

2检查PHP5的当前状态

首先,在我们安装memcached之前,先看一下我们的PHP5安装。 为此,我们在文件root / var / www中创建文件info.php

vi /var/www/info.php
<?php
phpinfo();
?>

之后,我们在浏览器中调用该文件: http : //192.168.0.100/info.php

正如你所看到的,我们已经安装了PHP 5.2.0

...但PHP5 memcache模块没有在页面上的任何地方提到:

3安装memcached和PHP5 memcache模块

memcached和PHP5 memcache模块可用作Debian Etch的软件包,因此我们可以按如下方式进行安装:

apt-get install memcached php5-memcache

安装完成后,memcached应​​该已经运行了。 您可以通过键入来检查

netstat -tap | grep memcached
server1:~# netstat -tap | grep memcached
tcp        0      0 *:11211                 *:*                     LISTEN     3053/memcached
server1:~#

如您所见,memcached正在端口11211 (默认memcached端口)上运行,并且正在监听系统上的所有接口。 由于memcached没有内置的身份验证机制(为了不放弃速度),这意味着任何人都可以从外部连接到它并使用它。 为了避免这种情况,您可以关闭防火墙中的端口11211,也可以将memcached配置为仅在本地主机上监听。 我将在这里使用后一种方法。

为此,请打开存储在/etc/memcached.conf中的memcached配置

vi /etc/memcached.conf

-l 127.0.0.1添加到配置中(您也可以根据需要调整其他设置 - 该文件包含每个设置的说明):

[...]
# Specify which IP address to listen on. The default is to listen on all IP addresses
# This parameter is one of the only security measures that memcached has, so make sure
# it's listening on a firewalled interface.
# -l 12.34.56.78
-l 127.0.0.1
[...]

重新启动memcached ...

/etc/init.d/memcached restart

...运行

netstat -tap | grep memcached

再次。 正如你所看到的,memcached现在正在仅在localhost上监听:

server1:~# netstat -tap | grep memcached
tcp        0      0 localhost.localdo:11211 *:*                     LISTEN     3092/memcached
server1:~#

之后,我们重新启动Apache,以便我们的新PHP配置生效:

/etc/init.d/apache2 restart

然后,在浏览器中再次打开info.phphttp : //192.168.0.100/info.php

你现在应该看到页面上提到的memcache,这意味着它已经成功地被整合并按预期工作:

要将PHP memcache模块与PHP应用程序一起使用,您应该查看memcache示例memcache函数引用。

我将使用http://dk.php.net/manual/en/memcache.examples.php中的示例脚本,并将其保存在文件/var/www/memcachetest.php中

vi /var/www/memcachetest.php
<?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);

?>

然后我在浏览器中调用该文件( http://192.168.0.100/memcachetest.php )。 如果一切顺利,输出应该如下所示:

4链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏