LoginSignup
7
4

More than 3 years have passed since last update.

CentOS7にPHP7.2とphp-pecl-zipを入れてもzipが有効にならない件

Last updated at Posted at 2018-06-11

背景

CentOS7にPHP7.2を入れてLaravelをインストールしようとしていた。
で、composer global require "laravel/installer" したところで以下のようなエラー。

$ composer global require "laravel/installer"

Changed current directory to /home/webuser/.config/composer                                                                          
Using version ^2.0 for laravel/installer
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - laravel/installer v2.0.1 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - laravel/installer v2.0.0 requires ext-zip * -> the requested PHP extension zip is missing from your system.
    - Installation request for laravel/installer ^2.0 -> satisfiable by laravel/installer[v2.0.0, v2.0.1].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/opt/remi/php72/php.ini
    - /etc/opt/remi/php72/php.d/20-bz2.ini
    - /etc/opt/remi/php72/php.d/20-calendar.ini
    - /etc/opt/remi/php72/php.d/20-ctype.ini
    - /etc/opt/remi/php72/php.d/20-curl.ini
    - /etc/opt/remi/php72/php.d/20-exif.ini
    - /etc/opt/remi/php72/php.d/20-fileinfo.ini
    - /etc/opt/remi/php72/php.d/20-ftp.ini
    - /etc/opt/remi/php72/php.d/20-gettext.ini
    - /etc/opt/remi/php72/php.d/20-iconv.ini
    - /etc/opt/remi/php72/php.d/20-json.ini
    - /etc/opt/remi/php72/php.d/20-phar.ini
    - /etc/opt/remi/php72/php.d/20-sockets.ini
    - /etc/opt/remi/php72/php.d/20-tokenizer.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Installation failed, deleting ./composer.json.

PHP7.2とphp-zipはremiレポジトリからインストール済。

やったこと

php.dにzipの表記がないからかな?と、とりあえず設定を入れてみる。

$ sudo echo "extension=zip.so" > /etc/opt/remi/php72/php.d/20-zip.ini
$ php --ri zip
PHP Warning:  PHP Startup: Unable to load dynamic library 'zip.so' (tried: /opt/remi/php72/root/usr/lib64/php/modules/zip.so (/opt/remi/php72/root/usr/lib64/php/modules/zip.so: cannot open shared object file: No such file or directory), /opt/remi/php72/root/usr/lib64/php/modules/zip.so.so (/opt/remi/php72/root/usr/lib64/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Extension 'zip' not present.

やっぱあかん。zip.soどこにあるんよ。

$ sudo find / -name zip.so -print
/usr/lib64/php/modules/zip.so
/usr/lib64/php-zts/modules/zip.so

なんでremiレポジトリから入れてるのに普通っぽいところに入ってるの・・・?

とりあえずリンクとか張ってみてもう一回見てみる。

$ sudo ln -s /usr/lib64/php/modules/zip.so /opt/remi/php72/root/usr/lib64/php/modules/zip.so
$ php --ri zip
zip

Zip => enabled
Zip version => 1.15.2
Libzip headers version => 1.3.2
Libzip library version => 1.5.1

いけた、、のか?バージョン自体はyumでインストールしたときのと同じっぽいけど・・・。

なんかしっくりこない・・・。

7
4
2

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
7
4