将PHP7到PHP8版本升级在Docker环境中进行

首先

由于PHP 7.3的安全支持于2021年12月6日结束,因此我升级到了PHP 8.1,并将此作为备忘录进行总结。

安装步骤(包括遇到的问题点)

$ php -v
PHP 7.3.20 (cli) (built: Jul 22 2020 10:03:35) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.20, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v3.0.4, Copyright (c) 2002-2021, by Derick Rethans

目前的版本是PHP7.3。
由于版本是在Dockerfile中管理的,我将进行修正。

FROM php:8.1.1-apache //ここでバージョン指定。

RUN apt-get update \
    && apt-get -y install --no-install-recommends vim wget lsb-release libicu-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev libzip-dev zlib1g-dev unzip \
    && docker-php-ext-install pdo_mysql mysqli intl zip \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd
RUN ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
RUN ln -s /etc/apache2/mods-available/vhost_alias.load /etc/apache2/mods-enabled

以下略、、

在编译时发生了错误。

configure: error: unrecognized options: --with-freetype-dir, --with-jpeg-dir

由于没有推荐使用–with-freetype-dir和–with-jpeg-dir,我们将删除各自的-dir选项。
将其修正为–with-freetype和–with-jpeg。

FROM php:8.1.1-apache //ここでバージョン指定。

RUN apt-get update \
    && apt-get -y install --no-install-recommends vim wget lsb-release libicu-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev libzip-dev zlib1g-dev unzip \
    && docker-php-ext-install pdo_mysql mysqli intl zip \
    && docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd
RUN ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
RUN ln -s /etc/apache2/mods-available/vhost_alias.load /etc/apache2/mods-enabled

以下略、、

我将再次编译Docker。

$ php -v
Failed loading /usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so:  /usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so: cannot open shared object file: No such file or directory
PHP 8.1.1 (cli) (built: Dec 21 2021 19:41:31) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies

PHP8.1.1已经安装完毕,但xdebug没有运行。

我会修复php.ini的修改。

[xdebug]
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/xdebug.so //ここを20210902へ変更します。
zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20210902/xdebug.so
xdebug.client_host = host.docker.internal

再次编译。

$ php -v
PHP 8.1.1 (cli) (built: Dec 21 2021 19:41:31) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies
    with Xdebug v3.1.2, Copyright (c) 2002-2021, by Derick Rethans

版本已成功升级,一切顺利。

bannerAds