我需要在运行Mac OS X Yosemite的MacBook Pro上安装libmemcached.
我已经安装了memcached守护进程,但是为了使PHP memcached.so PECL扩展能够工作,我需要安装libmemcached.
我从https://launchpad.net/libmemcached/+download下载了tar.gz ,查看了文件README.FIRST:
Hi!
If you are getting this code from http://launchpad.net/libmemcached then
continue reading. Otherwise these directions are not for you (well maybe...).
To obtain code from http://bazaar.launchpad.net/libmemcached you will need to
issue the following command:
bzr branch lp:libmemcached
Once the tree is cloned you will need to build the "configure" script. You
can do this by running the script:
./bootstrap.sh autoreconf
It will set up all of the files …Run Code Online (Sandbox Code Playgroud) 接下来是以下步骤:
telnet localhost 11211
set Test 0 100 10
get Test
CLIENT_ERROR bad data chunk
ERROR
set amit 2 2 2
get amit
CLIENT_ERROR bad data chunk
ERROR
Run Code Online (Sandbox Code Playgroud) 我有一个Dockerfile依赖PHP:8.1-apache,已经运行了几个月了。
一旦PHP:8.1-apache开始使用 Debian bookworm,memcached 客户端在构建镜像时就开始出错。
涉及的行Dockerfile是
FROM php:8.1-apache
...
RUN apt-get update --fix-missing -q \
&& apt-get install -y curl mcrypt gnupg build-essential software-properties-common wget vim zip unzip libxml2-dev libz-dev libpng-dev libmemcached-dev \
&& pecl install memcached \
&& docker-php-ext-enable memcached \
...
Run Code Online (Sandbox Code Playgroud)
图像构建时的错误是:
checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefix where libmemcached headers and library are located
ERROR: `/tmp/pear/temp/memcached/configure --with-php-config=/usr/local/bin/php-config --with-libmemcached-dir=no --with-zlib-dir=no …Run Code Online (Sandbox Code Playgroud) sudo pecl install memcached
Run Code Online (Sandbox Code Playgroud)
它提示:
libmemcached directory [no] :
Run Code Online (Sandbox Code Playgroud)
尝试了默认值和许多不同的目录和下载的源代码.当然可以享受这些模糊的错误消息.
我在哪里可以找到它正在寻找的文件以及它究竟在寻找什么?
搜索了几个小时,似乎没有任何帮助.
我尝试从源代码编译,但我遇到了很多警告和错误消息,最重要的是php-memcached项目似乎不包含配置脚本.
./configure
Run Code Online (Sandbox Code Playgroud)
"找不到文件或目录"这是错误.它想要libmemcached目录,但我不知道该目录内应该是什么.
我只是希望它以任何可能的方式加载php.这是在开发VM上,因此不需要生产就绪.只需要工作.
[编辑]
我安装了memcache,但我需要memcached.
我正在使用:
Bitnami lampstack 5.4.29-0 Ubuntu 12.04
[UPDATE]
我找到了这个:
所以我建议使用/安装PECL的官方memcached扩展并更新你的应用程序.
https://github.com/kajidai/php-libmemcached
否则,您必须通过以下步骤从头开始安装libmemcached扩展:
Run Code Online (Sandbox Code Playgroud)download from github unpack the file go into the new folder phpize ./configure make install enable it within you php.ini restart you webserver
得到了这个:
./configure
Run Code Online (Sandbox Code Playgroud)
检查libmemcached扩展名的位置... configure:error:找不到libmemcached头文件
更模糊的错误消息.
[UPDATE]
我通过升级到14.04解决了这个问题.似乎这是解决我的问题的最快途径.
我有一个使用Docker的应用程序,并且正在尝试使用php7-fpm安装memcached。
根据官方的 docker 文档,我在Dockerfile中有:
# PHP Version
FROM php:7.0-fpm
...
# Install Memcached
RUN apt-get install -y libmemcached-dev && \
pecl install memcached && \
docker-php-ext-enable memcached
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误:
pecl/memcached requires PHP (version >= 5.2.0, version <= 6.0.0, excluded versions: 6.0.0), installed version is 7.0.9
Run Code Online (Sandbox Code Playgroud)
我不想切换到PHP 5.6。有任何想法吗?
libmemcached ×5
memcached ×5
docker ×2
php ×2
apache ×1
dockerfile ×1
macos ×1
ubuntu-12.04 ×1