在ECS Ubuntu 18.04上使用PHP配置Memcached服务器

在本指南中,我们将介绍如何在ECS Ubuntu 18.04实例上配置Memcached服务器,并使用Memcached服务器在PHP代码中加速操作。

这篇博客是从英文版翻译而来的。原始文章可在此处查看。我们使用了部分机器翻译。如果有翻译错误,请您指出,谢谢。

前提条件 tí

请在开始之前确认以下事项。

    • Alibaba Cloudアカウント。サインアップは無料です。Alibaba Cloudアカウントを作成して、50以上のAlibaba Cloud製品をテストするための最大1200ドル相当の無料トライアルをお楽しみください。

 

    • オペレーティングシステムとしてUbuntu 18.04を実行しているAlibaba Cloud Elastic Compute Service (ECS)インスタンス。初期のECSセットアップガイドに従って、1つのECSを作成することができます。

 

    ECS インスタンス上で sudo 権限を実行できる非 root ユーザー。

步骤1:安装Apache Web服务器。

中文翻译:
第一步是安装Apache Web服务器。如果您的服务器上已经运行了Apache,可以省略这一步骤。请通过阿里云ECS实例的SSH连接,并执行以下命令。

$ sudo apt-get update 
$ sudo apt-get install -y apache2

当安装并运行web服务器后,接下来需要安装PHP。

步骤2:安装PHP

接下来,请执行以下命令安装PHP。与前面一步相同,如果系统中已经运行了PHP,则可以省略此安装。此外,以下命令将安装与Apache Web服务器和PHP配合使用的libapache2-mod-php模块。

$ sudo apt-get install -y php libapache2-mod-php

接下来,我们要安装 php-memcached 扩展模块。这个模块可以为客户端(例如PHP代码)提供对 Memcached 服务器的访问。

$ sudo apt-get install -y php-memcached

为了使更改生效,我们将重新启动 Apache。

$ sudo systemctl restart apache2

因为已经安装了 PHP 和 Memcached 扩展模块,所以现在可以开始安装 Memcached 服务器了。

第三步:安装和配置Memcached服务器

由于Memcached软件包在Ubuntu的默认软件库中,所以我们可以使用apt进行安装。另外,还需要安装libmemcached-tools。这是用于Memcached服务器的一组轻量级库和工具。

要安装Memcached,请执行以下命令。

$ sudo apt-get install -y memcached libmemcached-tools

安装后,您可以使用nano文本编辑器修改/etc/memcached.conf文件来编辑Memcached的设置。

$ sudo nano /etc/memcached.conf

让我们来看一下Memcached使用的一些配置。

-d:使用此选项可以将Memcached作为守护进程运行。

日志文件:Memcached将错误和活动记录到此文件中。

-m: 指定-m后的值为Memcached服务器可以保持的最大内存,但是Memcached在初次启动时不会保持全部内存。缓存大小可以根据阿里云ECS实例可用的RAM进行更改。

-p: Memcached会在指定的端口上监听。默认值为11211。

-u:此选项用于指定Memcached运行的用户。默认值为memcache。

– 我:您可以指定Memcached服务器侦听的IP地址。Ubuntu 18.04服务器的默认值是localhost,IP地址设置为127.0.0.1。

使用此选项,可以限制对Memcached服务器的同时连接数。默认值为1024。

如果对文件进行了更改,需要使用以下命令重新启动Memcached服务器。

$ sudo systemctl restart memcached

随后,重新启动Apache Web服务器。

$ sudo systemctl restart apache2

应该可以通过这个来判断 Memcached 服务器是否按预期工作。下一步是编写一个简单的 PHP 脚本,以确认 PHP 真的支持 Memcached 服务器。

步骤4:确认支持Memcached的情况

安装并配置好 Memcached 后,接下来要确认 Apache 网页服务器和 PHP 是否能够识别 Memcached。

要执行这个操作,需要在网站的根目录下创建一个 info.php 文件。

$ sudo nano /var/www/html/info.php

请把以下内容复制粘贴到文件中。

<?php
 phpinfo();
?>

请按下CTRL+X、Y、Enter来保存文件。

接下来,在Web浏览器中,您需要访问以下文件路径。请不要忘记将172.16.0.1替换为与阿里巴巴云ECS实例关联的公共/互联网IP地址。

172.16.0.0.1/info.php

当您查找memcached的头文件时,应该会显示以下信息。通过这种方式,您可以确认在PHP中已经支持了Memcached。

image.png

然后,执行以下命令以确认 Memcached 服务器在服务器上按预期工作。

echo stats | nc 127.0.0.0.1 11211

会显示以下输出。

STAT pid 9493
STAT uptime 725
STAT time 1570086409
...
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END

确认 memcached 服务器正常运行后,接下来需要编写一个使用 memcached 库的 PHP 脚本。

步骤5:使用PHP脚本测试Memcached

在这个步骤中,我们将创建一个简单的PHP脚本,使用Memcached类来缓存数据。使用nano文本编辑器,在网站的根目录下创建 /var/www/html/test_memcached.php 文件。

$ sudo nano /var/www/html/test_memcached.php

接下来,将下面的PHP代码粘贴到文件中,按下CTRL+X、Y、Enter键进行保存。

<?php

try

{
    $memcached = new Memcached();
    $memcached->addServer("127.0.0.1", 11211); 
    $response = $memcached->get("sample_key");

    if($response==true) 
    {
      echo $response;
    } 

    else

    {
    echo "Cache is empty";
    $memcached->set("sample_key", "Sample data from cache") ;
    }
}
catch (exception $e)
{
echo $e->getMessage();
}
?>

Memcached服务器通过使用键值对保存缓存数据。上述代码创建了一个Memcached类的实例,并指示将服务器IP地址设置为127.0.0.1,通过11211端口进行添加。

接下来,此代码将尝试获取名为sample_key的键的值。如果键存在于服务器上,则返回该值;如果不存在,则代码将创建该键,并尝试添加值”Sample data from cache”。

请访问浏览器中的文件路径,确认Memcached的运行情况。将172.16.0.1替换为与阿里巴巴ECS实例关联的互联网IP地址。

172.16.0.0.1/test_memcached.php

当你第一次运行代码时,会得到以下输出。

image.png

接下来,刷新页面,这次应该是从缓存中获取Memcached最初执行代码时缓存的值。

image.png

以上是有关如何在PHP中配置和使用Memcached的方法。您可以扩展此代码,以缓存来自数据库、外部网络源(如API)和文件系统的数据。

得出的結論

在这个指南中,我们解释了如何在托管在阿里巴巴云的PHP Ubuntu 18.04服务器上设置和使用Memcached。这只是一个用于优化网站和Web应用性能的少数技术之一。此外,请您也阅读关于如何在阿里巴巴云ECS上优化MySQL查询以提高速度和性能的方法。

阿里巴巴云拥有两个数据中心在日本,并且拥有超过60个可用区,是亚太地区排名第一的云基础设施提供商(2019年Gartner报告)。
有关阿里巴巴云的详细信息,请点击此处查看。
阿里巴巴云日本官方网页。

广告
将在 10 秒后关闭
bannerAds