LoginSignup
15
13

More than 3 years have passed since last update.

Dockerのphpイメージでzip extensionを使えるようにする

Last updated at Posted at 2018-03-23

(2020/02/09更新)最新版イメージであれば使用可能(なはず)です

7.2 もそろそろサポートが切れるので7.4 のイメージを使おうとしたら
ちゃんとバージョンがあがっていました

Dockerfile
FROM php:7.4-apache

RUN apt-get update
RUN apt-get -y install libzip-dev
RUN docker-php-ext-install zip

Screenshot_138.png

なので大丈夫だと思います

過去記事は単純に記録として残しておきます

以下過去記事

やりたいこと

Docker hub から phpイメージを引っ張ってきても
zip extensionでパスワード付きzipを作成できない。
それを作成できるようにするのです。

原因さがし

とりあえずこんな感じでできるかな?
とやってみると

Dockerfile
FROM php:7.2-apache
...
docker-php-ext-install zip

zip 使えるようになったかなー、という気がしてくる。
でもよーくログを見ると

log
checking for libzip... from pkgconfig: version 1.1.2 found in /usr/lib/x86_64-linux-gnu
checking for zip_open in -lzip... yes
checking for zip_file_set_encryption in -lzip... no
configure: WARNING: Libzip >= 1.2.0 needed for encryption support

バージョン古くて泣けるのです。
なにか情報ないかな、と思ってベースとなっているubuntuのトラッカーを見に行くと

一応 In Progress

でも待っていられないので自分で入れてしまいましょう

むりやりコンパイルして入れる

これが正解かどうかわかりません。
むしろだれかもっとスマートな方法教えてください(´;ω;`)

抜粋しているだけなので、もしかしたら足りないものあるかも

Dockerfile
FROM php:7.2-apache
RUN apt-get update &&\
    apt-get install apt-utils curl gnupg cmake -y &&\
    mkdir /tmp/libzip && cd /tmp/libzip && curl -sSLO https://libzip.org/download/libzip-1.4.0.tar.gz &&\
    tar zxf libzip-1.4.0.tar.gz && cd libzip-1.4.0/ && mkdir build && cd build && cmake ../ &&\
    make > /dev/null && make install &&\
    docker-php-ext-configure zip --with-libzip=/usr/local/lib/libzip.so &&\
    docker-php-ext-install zip

こんなんでいいのでしょうか?

確認

36144847-c4c2deb6-10f2-11e8-8fd5-35b313ff41a5.png

できてましたヽ(^o^)丿

15
13
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
15
13