将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
版本已成功升级,一切顺利。