docker php ext安装-尽管安装了扩展,但仍然找不到源代码
我正在尝试在docker PHP映像中安装extenion。我有以下Dockerfile:docker php ext安装-尽管安装了扩展,但仍然找不到源代码,php,docker,Php,Docker,我正在尝试在docker PHP映像中安装extenion。我有以下Dockerfile: FROM php:7.2-apache RUN apt-get update RUN apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \ libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev \ libbz2-d
FROM php:7.2-apache
RUN apt-get update
RUN apt-get install -y build-essential cmake g++ libboost-dev libboost-system-dev \
libboost-filesystem-dev libexpat1-dev zlib1g-dev libxml2-dev \
libbz2-dev libpq-dev libproj-dev \
git sudo wget postgresql-server-dev-all python-pyosmium osmium-tool
RUN docker-php-ext-install dba
RUN docker-php-ext-install pgsql
RUN printf '<Directory "/srv/nominatim/Nominatim/build/website"> \n\
Options FollowSymLinks MultiViews \n\
AddType text/html .php \n\
DirectoryIndex search.php \n\
Require all granted \n\
</Directory> \n\
\n\
Alias /nominatim /srv/nominatim/Nominatim/build/website \n' > /etc/apache2/conf-available/nominatim.conf
RUN a2enconf nominatim
RUN service apache2 stop
RUN service apache2 start
WORKDIR /srv/nominatim
RUN wget https://nominatim.org/release/Nominatim-3.2.0.tar.bz2
RUN tar xf Nominatim-3.2.0.tar.bz2
RUN mv Nominatim-3.2.0 Nominatim
WORKDIR /srv/nominatim/Nominatim
RUN mkdir build
WORKDIR /srv/nominatim/Nominatim/build
RUN cmake ..
RUN make
RUN tee settings/local.php << $"EOF \n\
<?php \n\
@define('CONST_Website_BaseURL', '/nominatim/'); \n\
EOF"
看起来DB.php实际上根本不存在(或者我找不到它们),尽管扩展名似乎已经安装好了-因为.so文件也在它的位置上
编辑:我已经在上面粘贴了完整的Dockerfile。实际上,我正在尝试构建一个包含PostgreSQL和OSM数据的另一个图像,该图像将由另一个图像组成。请提供完整的Dockerfile。看起来您没有复制DB.php,它是应用程序源代码的一部分,而不是extension@Thomas,我已经更新了这个问题。我不认为瘦应用程序源代码有缺陷(至少我希望没有),因为PHP代码只来自Namingm。我没有以任何方式修改源代码。我怀疑您也需要安装PEAR:DB包,
PEAR install DB
问题在于此docker映像包含从源代码而不是从包编译的PHP构建。因此,我使用docker php ext安装脚本安装扩展,它不允许我安装PEAR,或者至少我不知道如何安装。尝试为包安装任何扩展都会导致“无安装候选”。
Warning: require_once(DB.php): failed to open stream: No such file or directory in /srv/nominatim/Nominatim/lib/db.php on line 3
Fatal error: require_once(): Failed opening required 'DB.php' (include_path='.:/usr/local/lib/php') in /srv/nominatim/Nominatim/lib/db.php on line 3