php - Docker 容器上的 Couchbase PHP SDK 2.6
问题描述
当我使用 PHP 7.3 安装最新的 php sdk 3.1.2 时,它运行良好,但我的应用程序正在使用 PHP 2.6 SDK,但它不工作并给我一个错误
/tmp/pear/temp/couchbase/couchbase.c -o couchbase.lo
mkdir .libs
cc -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/tmp/pear/temp/couchbase -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-defaultusermvTqHw/couchbase-2.6.0/include -I/tmp/pear/temp/pear-build-defaultusermvTqHw/couchbase-2.6.0/main -I/tmp/pear/temp/couchbase -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/couchbase/couchbase.c -fPIC -DPIC -o .libs/couchbase.o
In file included from /tmp/pear/temp/couchbase/couchbase.c:17:
/tmp/pear/temp/couchbase/couchbase.h:29:10: fatal error: libcouchbase/api3.h: No such file or directory
#include <libcouchbase/api3.h>
^~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:195: couchbase.lo] Error 1
ERROR: `make' failed
ERROR: Service 'php' failed to build: The command '/bin/sh -c pecl install https://packages.couchbase.com/clients/php/couchbase-2.6.0.tgz' returned a non-zero code: 1
这是我的 Dockerfile
#FROM php:7.3.28-apache
FROM php:7.2-apache
RUN apt-get update
RUN apt-get install -y wget lsb-release gnupg2
RUN wget https://packages.couchbase.com/clients/c/repos/deb/couchbase.key
RUN apt-key add couchbase.key
COPY ./config/couchbase.list /etc/apt/sources.list.d
RUN apt-get update
RUN apt search libcouchbase
RUN apt install -y libcouchbase3 libcouchbase-dev libcouchbase3-tools libcouchbase-dbg libcouchbase3-libev libcouchbase3-libevent
RUN pecl install https://packages.couchbase.com/clients/php/couchbase-2.6.0.tgz
COPY ./config/php/php.ini /usr/local/etc/php/
WORKDIR /var/www/html
COPY ./backend/ /var/www/html/
EXPOSE 80
这是我的 Couchbase.list 文件
deb https://packages.couchbase.com/clients/c/repos/deb/ubuntu1804 bionic bionic/main
我还在我的 PHP.ini 上添加了扩展名 extension=couchbase.so
请注意,如果我使用 PHP SDK 3.1.2,一切正常
解决方案
如果有人在这里遇到同样的问题,我已经解决了
FROM php:7.3.28-apache
RUN apt-get update
RUN apt-get install -y wget lsb-release gnupg2
RUN echo "deb http://packages.couchbase.com/ubuntu bionic bionic/main" | tee /etc/apt/sources.list.d/couchbase.list
RUN wget -O - http://packages.couchbase.com/ubuntu/couchbase.key | apt-key add -
RUN apt-get update
#RUN apt search libcouchbase
RUN apt-get install -y libcouchbase2-libevent libcouchbase-dev
RUN apt-get update
RUN pecl install https://packages.couchbase.com/clients/php/couchbase-2.6.2.tgz
COPY ./config/php/php.ini /usr/local/etc/php/
WORKDIR /var/www/html
COPY ./backend/ /var/www/html/
EXPOSE 80
推荐阅读
- css - offset-4 元素不对齐
- r - 在r中绘制两组数据
- php - WordPress PHP $_SESSION
- git - 托管私人仓库,无法通过 http(s) 找到
- swift - 材质豆荚 ErrorTextField
- owl - 有没有办法在 SWRL 中使用 xsd:dateTime 计算持续时间,颗粒可以推理?
- date - 更改 WinSCP 时间戳,从指定日期命名的文件夹中获取文件
- angular - 以角度注入具有基类类型的父组件
- ajax - 控制器动作 respond_to 格式错误 ActionController::UnknownFormat
- java - 如何从黄瓜项目中的多个功能文件运行您的功能文件