<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Php%E8%BF%9E%E6%8E%A5%E6%9C%89%E5%AF%86%E7%A0%81%E7%9A%84memcached%E6%9C%8D%E5%8A%A1</id>
	<title>Php连接有密码的memcached服务 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Php%E8%BF%9E%E6%8E%A5%E6%9C%89%E5%AF%86%E7%A0%81%E7%9A%84memcached%E6%9C%8D%E5%8A%A1"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Php%E8%BF%9E%E6%8E%A5%E6%9C%89%E5%AF%86%E7%A0%81%E7%9A%84memcached%E6%9C%8D%E5%8A%A1&amp;action=history"/>
	<updated>2026-04-17T15:23:31Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Php%E8%BF%9E%E6%8E%A5%E6%9C%89%E5%AF%86%E7%A0%81%E7%9A%84memcached%E6%9C%8D%E5%8A%A1&amp;diff=822&amp;oldid=prev</id>
		<title>Evan：​/* see also */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Php%E8%BF%9E%E6%8E%A5%E6%9C%89%E5%AF%86%E7%A0%81%E7%9A%84memcached%E6%9C%8D%E5%8A%A1&amp;diff=822&amp;oldid=prev"/>
		<updated>2020-02-18T08:13:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;see also&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt; [[category:php]] &lt;br /&gt;
&lt;br /&gt;
=我的环境 =&lt;br /&gt;
 &amp;lt;pre&amp;gt;ubuntu 18.04  xampp  7.3.12&lt;br /&gt;
有密码的memcached服务 相关信息&lt;br /&gt;
&amp;#039;192.168.10.214:11211&amp;#039;), &amp;#039;memcached&amp;#039;, &amp;#039;RV3kEjX5Ug5ufTKO&amp;#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=ins sasl 库=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 apt-get install -y  \&lt;br /&gt;
    libevent-dev \&lt;br /&gt;
    libsasl2-2 \&lt;br /&gt;
    sasl2-bin \&lt;br /&gt;
    libsasl2-2 \&lt;br /&gt;
    libsasl2-dev \&lt;br /&gt;
    wget \&lt;br /&gt;
    pwgen \&lt;br /&gt;
    gcc \&lt;br /&gt;
    make \&lt;br /&gt;
    libsasl2-modules&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=ins libmemcached=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget  -c  https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz&lt;br /&gt;
tar xvf libmemcached-1.0.18.tar.gz &lt;br /&gt;
cd libmemcached-1.0.18/&lt;br /&gt;
   &lt;br /&gt;
  ./configure --prefix=/usr/local/libmemcached --enable-sasl&lt;br /&gt;
  &lt;br /&gt;
  Ubuntu 18.04 LTS使用GCC 7.3版本，编译libmemcached失败。&lt;br /&gt;
&lt;br /&gt;
clients/memflush.cc:42:22: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]&lt;br /&gt;
   if (opt_servers == false)&lt;br /&gt;
                      ^~~~~&lt;br /&gt;
clients/memflush.cc:51:24: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]&lt;br /&gt;
     if (opt_servers == false)&lt;br /&gt;
                        ^~~~~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
编译前需要打个补丁，参见：&lt;br /&gt;
https://bugs.launchpad.net/libmemcached/+bug/1663985&lt;br /&gt;
https://src.fedoraproject.org/cgit/rpms/libmemcached.git/plain/libmemcached-build.patch&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wget https://src.fedoraproject.org/rpms/libmemcached/raw/HEAD/f/libmemcached-build.patch&lt;br /&gt;
&lt;br /&gt;
libmemcached-1.0.18# patch -p1 &amp;lt; libmemcached-build.patch&lt;br /&gt;
&lt;br /&gt;
make -j3 &amp;amp;&amp;amp; make install &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= ins  php memcached =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
memcached 	PHP extension for interfacing with memcached via libmemcached library&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
wget -c  https://pecl.php.net/get/memcached-3.1.5.tgz&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
apt install m4 autoconf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tar xvf memcached-3.1.5.tgz &lt;br /&gt;
&lt;br /&gt;
cd /opt/memcached-3.1.5/&lt;br /&gt;
/opt/lampp/bin/phpize&lt;br /&gt;
 ./configure --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached-sasl --with-php-config=/opt/lampp/bin/php-config&lt;br /&gt;
 &lt;br /&gt;
 make -j3  &lt;br /&gt;
  make install &lt;br /&gt;
Installing shared extensions:     /opt/lampp/lib/php/extensions/no-debug-non-zts-20180731/&lt;br /&gt;
&lt;br /&gt;
vim  /opt/lampp/etc/php.ini&lt;br /&gt;
; add &lt;br /&gt;
&lt;br /&gt;
extension=memcached.so &lt;br /&gt;
memcached.use_sasl = 1&lt;br /&gt;
&lt;br /&gt;
检验 &lt;br /&gt;
/opt/lampp/bin/php -m  | grep mem&lt;br /&gt;
memcached&lt;br /&gt;
&lt;br /&gt;
或者直接 phpinfo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=PHP 代码示例=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
示例1：基本的连接云数据库 Memcache 及 set/get 操作&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;?php&lt;br /&gt;
    $connect = new Memcached;  //声明一个新的memcached链接&lt;br /&gt;
    $connect-&amp;gt;setOption(Memcached::OPT_COMPRESSION, false); //关闭压缩功能&lt;br /&gt;
    $connect-&amp;gt;setOption(Memcached::OPT_BINARY_PROTOCOL, true); //使用binary二进制协议&lt;br /&gt;
    $connect-&amp;gt;setOption(Memcached::OPT_TCP_NODELAY, true); //重要，php memcached有个bug，当get的值不存在，有固定40ms延迟，开启这个参数，可以避免这个bug&lt;br /&gt;
    $connect-&amp;gt;addServer(&amp;#039;192.168.10.214&amp;#039;, 11211); //添加memcached地址及端口号&lt;br /&gt;
    $connect-&amp;gt;setSaslAuthData(&amp;#039;memcached&amp;#039;, &amp;#039;RV3kEjX5Ug5ufTKO&amp;#039;); //S帐号密码进行鉴权，如已开启免密码功能，则无需此步骤&lt;br /&gt;
    $connect-&amp;gt;set(&amp;quot;hello&amp;quot;, &amp;quot; hey evan  world&amp;quot;);&lt;br /&gt;
    echo &amp;#039;hello: &amp;#039;,$connect-&amp;gt;get(&amp;quot;hello&amp;quot;);&lt;br /&gt;
    $connect-&amp;gt;quit();&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
打开浏览器 &lt;br /&gt;
hello: hey evan world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=troubleshooting=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
装cyrus-sasl-devel软件包然后重新编译libmemcached。&lt;br /&gt;
&lt;br /&gt;
重新libme 再安装一次吧 &lt;br /&gt;
要先打包时一样安装 sasl之类的&lt;br /&gt;
configure: error: no, libmemcached built with sasl disabled. Run configure with --disable-memcached-sasl or update libmemcached with sasl support&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
php编译扩展库时报错：Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.&lt;br /&gt;
&lt;br /&gt;
    yum -y install autoconf m4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
configure: error: Cannot find php-config. Please use --with-php-config=PATH 错误的解决方案&lt;br /&gt;
&lt;br /&gt;
一般出现这个错误说明你执行 ./configure 时  --with-php-config 这个参数配置路径错误导致的。&lt;br /&gt;
&lt;br /&gt;
修改为：&lt;br /&gt;
&lt;br /&gt;
./configure --with-php-config=/usr/local/php/bin/php-config&lt;br /&gt;
&lt;br /&gt;
就可以解决问题&lt;br /&gt;
&lt;br /&gt;
上面的 /usr/local/php/ 是你的 php 安装路径  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=see also=&lt;br /&gt;
[https://help.aliyun.com/document_detail/48432.html aliyun文档PHP: memcached]&lt;br /&gt;
&lt;br /&gt;
https://www.php.net/manual/en/book.memcached.php&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/fwkjdaghappy1/article/details/7592337 php的两个memcached扩展：memcache和memcached]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.cnblogs.com/lxg0/articles/5343523.html Centos 7.2 及php7环境下升级memcache未果，改安装 memcached]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>