Ubuntu下安装已弃用PHP7.3遇阻,原PPA仓库不再支持该版本
解决Docker中无法安装PHP7.3-cli的问题
方案1:直接使用官方PHP7.3镜像替换基础镜像
官方PHP镜像已内置对应版本环境,无需额外添加PPA,是最简便的方案。修改后的Dockerfile如下:
FROM php:7.3-cli-bionic # 生成 locales RUN apt-get update && apt-get install -y --no-install-recommends locales \ && locale-gen en_US.UTF-8 ru_RU.UTF-8 \ && apt-get clean && rm -rf /var/lib/apt/lists/*
方案2:在phusion/baseimage:bionic中使用归档包源安装
若必须保留phusion/baseimage基础镜像,可通过添加旧版本的归档包源来获取PHP7.3:
FROM phusion/baseimage:bionic-1.0.0-amd64 # 生成 locales RUN locale-gen en_US.UTF-8 ru_RU.UTF-8 # 添加PHP7.3的归档源 RUN echo "deb http://archive.ubuntu.com/ubuntu bionic universe" >> /etc/apt/sources.list \ && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu bionic main" >> /etc/apt/sources.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C # 指定版本安装PHP7.3-cli RUN apt-get update && apt-get install -y --no-install-recommends php7.3-cli \ && apt-get clean && rm -rf /var/lib/apt/lists/*
注:归档源可能随时停止维护,若此方法失效,建议优先采用方案1。
方案3:从源码编译PHP7.3(备选)
如果上述包源均无法使用,可选择从源码编译安装PHP7.3:
FROM phusion/baseimage:bionic-1.0.0-amd64 # 安装编译依赖 RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ libxml2-dev \ libssl-dev \ libcurl4-openssl-dev \ locales \ && locale-gen en_US.UTF-8 ru_RU.UTF-8 # 下载并编译PHP7.3 RUN cd /tmp \ && curl -O https://www.php.net/distributions/php-7.3.33.tar.gz \ && tar -xzf php-7.3.33.tar.gz \ && cd php-7.3.33 \ && ./configure --prefix=/usr/local/php7.3 --enable-cli --with-openssl --with-curl \ && make -j$(nproc) \ && make install \ && ln -s /usr/local/php7.3/bin/php /usr/bin/php \ && rm -rf /tmp/php-7.3.33* \ && apt-get purge -y build-essential \ && apt-get autoremove -y \ && apt-get clean && rm -rf /var/lib/apt/lists/*
此方法编译耗时较长,但能确保环境可控。
内容的提问来源于stack exchange,提问作者Akhmed
相关产品推荐
相关产品推荐

