1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Docker環境でPHP7→PHP8へバージョンアップ

Posted at

#はじめに
PHP7.3のセキュリティサポートが2021年12月6日に終了しPHP8.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で管理してるので修正します。

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に修正します。

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=/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の修正を修正します。

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

無事にバージョンアップが完了しました。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?