在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。
然后,执行以下命令以确认 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
当你第一次运行代码时,会得到以下输出。
接下来,刷新页面,这次应该是从缓存中获取Memcached最初执行代码时缓存的值。
以上是有关如何在PHP中配置和使用Memcached的方法。您可以扩展此代码,以缓存来自数据库、外部网络源(如API)和文件系统的数据。
得出的結論
在这个指南中,我们解释了如何在托管在阿里巴巴云的PHP Ubuntu 18.04服务器上设置和使用Memcached。这只是一个用于优化网站和Web应用性能的少数技术之一。此外,请您也阅读关于如何在阿里巴巴云ECS上优化MySQL查询以提高速度和性能的方法。
阿里巴巴云拥有两个数据中心在日本,并且拥有超过60个可用区,是亚太地区排名第一的云基础设施提供商(2019年Gartner报告)。
有关阿里巴巴云的详细信息,请点击此处查看。
阿里巴巴云日本官方网页。