【问题标题】:How to install php-memcache in xampp ubuntu?如何在 xampp ubuntu 中安装 php-memcache?
【发布时间】:2022-12-23 21:10:07
【问题描述】:

我已经在我的Ubuntu 22.04操作系统中从https://www.apachefriends.org/index.html安装了xampp for linux

成功安装后,我的项目运行良好,但是当我使用以下命令在我的系统中安装 php-memcached 时,它没有显示在我的 phpinfo() 页面中。

命令:

sudo apt-get install -y php-memcached

我还尝试使用代码来检查我的 Memcached 是否已成功安装。但是我收到错误消息Class 'Memcached' not found

代码:

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

if($response==true) {
    echo $response;
} else {
    echo "Cache is empty";
    $memcached->set("sample_key", "Sample data from cache") ;
}

Yii 控制台错误输出:

Class 'Memcached' not found

请让我知道如何在 Xappp 中为我的 ubuntu 系统安装 php-memcached?

【问题讨论】:

  • 你检查过 php.ini 了吗?
  • @shingo 是的,我已经检查过了
  • 我的意思是您需要在 php.ini 中添加 extension=memcached.so。因为你通过 apt 安装扩展,所以你需要注意路径。如果 xampp 安装在 /opt/lampp/ 中,您需要手动将 memcached.so/usr/lib/php/<version>/ 复制到 /opt/lampp/lib/php/extension/<version>/
  • 另一种选择是通过 PECL /opt/lampp/bin/pecl install memcached 安装扩展。
  • @shingo 感谢您的评论。我错过了添加extension=memcached.so

标签: php memcached php-memcached


【解决方案1】:

php-memcached 扩展使用libmemcached 库来提供与 memcached 服务器通信的 API。

所以,这个扩展需要libmemcached client library

步骤。尝试成功来自基本的 ubuntu:22.04 图像:

FROM ubuntu:22.04

RUN apt-get update && apt-get upgrade -y && apt-get install -y net-tools sudo wget nano

和 xampp 安装:

cd /home
sudo wget https://downloadsapachefriends.global.ssl.fastly.net/8.1.6/xampp-linux-x64-8.1.6-0-installer.run
sudo chmod 755 xampp-linux-x64-8.1.6-0-installer.run
sudo ./xampp-linux-x64-8.1.6-0-installer.run

然后,有很多依赖项需要安装:

sudo apt-get update
sudo apt-get install -y memcached
sudo apt-get install php-pear
sudo apt-get install libcurl3-openssl-dev
sudo apt-get install php-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libmemcached-dev
sudo pecl install memcached #note the path to memcached.so
sudo nano /opt/lampp/etc/php.ini
add extension=/usr/lib/php/20210902/memcached.so #path noted before
sudo /opt/lampp/lampp restart

或者其他可能的安装:

sudo apt-get update
sudo apt-get install autoconf
sudo apt-get install build-essential
sudo apt-get install -y pkg-config
sudo apt-get install zlib1g-dev
sudo apt-get install libmemcached-dev
sudo /opt/lampp/bin/pecl install memcached #note the path to memcached.so
sudo nano /opt/lampp/etc/php.ini
add extension=/opt/lampp/lib/php/extensions/no-debug-non-zts-20210902/memcached.so #path noted before
sudo /opt/lampp/lampp restart

使用您的代码:

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

if($response==true) {
    echo $response;
} else {
    echo "Cache is empty";
    $memcached->set("sample_key", "Sample data from cache") ;
}

结果:

Cache is empty

和 phpinfo:

参考更多详情:

https://www.php.net/manual/en/book.memcached.php

【讨论】:

    【解决方案2】:

    在ubuntu中安装php-memcached的步骤

    首先,转到 /opt/lampp/bin/ 然后运行以下命令

    > sudo pecl install memcached
    

    安装后打开 php.ini(我的 ini 路径/opt/lampp/etc/php.ini) 并在该文件中添加以下行

    extension=memcached.so
    

    【讨论】:

      猜你喜欢
      • 2016-03-14
      • 2011-05-24
      • 2012-08-28
      • 2020-06-20
      • 2011-01-11
      • 2011-06-10
      • 1970-01-01
      • 2020-01-04
      • 2017-08-16
      相关资源
      最近更新 更多