web-dev-qa-db-ja.com

ZipArchiveが見つかりませんが、インストールされているようです(PHP 7.2)

Amazon EC2インスタンス(Amazon Linux 2)にZipArchiveを必要とするCMSをインストールしています。要件ウィザードには、ZipArchiveはサポートされていないと表示されます。

enter image description here

しかし、オンラインで見つけた手順に従ってZipArchiveをインストールしようとすると、サーバーはすでにインストールされていると通知します。

[ec2-user@ip-***-**-**-** ~]$ Sudo yum install php-Zip
Loaded plugins: langpacks, priorities, update-motd
amzn2-core                                                                                                                                                                         | 2.0 kB  00:00:00     
Package matching php-common-5.4.16-43.amzn2.0.1.x86_64 already installed. Checking for update.
Nothing to do

Httpdサービスを再起動しました。

私も試しました:

[ec2-user@ip-***-**-**-** ~]$ Sudo yum install php7.0-Zip
Loaded plugins: langpacks, priorities, update-motd
amzn2-core                                                                                                                                                                         | 2.0 kB  00:00:00     
No package php7.0-Zip available.
Error: Nothing to do

私も追加してみました:

extension=Zip.so

Php.iniに移動し、httpdサービスを再起動しました。まだ喜びはありません。

ZipArchiveのPHPマニュアルでは、「これらの関数を使用するには、-enable-Zip構成オプションを使用してZipサポートを使用してPHPをコンパイルする必要があります。 。 "これをどこで、いつ行うかわかりません。単に使用しただけです。

yum install php php-mysql

PHPをインストールするには。

これを解決しようとほぼ一日、私はここからどこへ行くのか途方に暮れています。誰かが私を正しい方向に向けることができますか?

3
user2265915

Remiのリポジトリを使用している場合、Zipモジュールがpecl拡張機能であることに気付きました。そのため、Zip実行をインストールして有効にします。

 Sudo yum -y install php-pecl-Zip

次に、php-fpmを再起動します。NGINXを使用しているか、Apacheを再起動します。

 Sudo service php-fpm restart
 Sudo service httpd restart

レミリポジトリをインストールできます

**RHEL or CentOS**
yum install yum-utils
yum-config-manager --enable remi-php72

Remi Repoの説明を参照

2
andychukse

Laravelをインストールしようとして同じ問題(Amazon Linux 2 AMI)が発生しました。問題は、このAMIがlibzip 0.10.1を使用し、少なくとも0.11が必要であり、拡張フォルダー(このAMI:/ usr/lib64/php/modules)をチェックインすると、ファイルZip.soが見つからないことです。したがって、php.iniファイルで拡張子を有効にすると、Apacheのログにエラーが記録されます。 RemiのRPMリポジトリを使用してlibzip1.1.3をインストールすることで問題を解決しました。これは私がしたことです:

  1. epelリポジトリをインストールします(RemiのRPMをインストールする必要があります)
  2. レミのリポジトリをインストールする
  3. リポジトリからlibzipをインストールします。新しいlibzipバージョンを確認できます。

    $ yum list "*libzip*"
    Installed Packages
    libzip-last.x86_64         1.1.3-1.el7.remi            installed
    
  4. 互換性のあるlibzipができたので、Zip拡張機能をコンパイルできます。tmpフォルダーの [〜#〜] pecl [〜#〜] からパッケージをダウンロードし、ファイルを抽出して、パッケージルートから:

    $ Sudo phpize
    $ Sudo ./configure
    $ Sudo make
    $ Sudo make install
    
  5. make installコマンドの後、出力は次のようになります。

    Installing shared extensions:     /usr/lib64/php/modules/
    

    そのディレクトリに移動すると、最終的にZip.soファイルが表示されます。

  6. Php.iniを追加して変更します

    extension=Zip
    
  7. Webサーバーを再起動し、PHP情報を確認します。これは私が私の中で見るものです:

    Zip enabled
    Zip version 1.15.2
    Libzip version  0.11.2
    

私の場合、laravelをインストールすることができました。

1
Pozor

Centos7とPHP 7.3でも同様の問題が発生しました。
次の方法で解決できました:

Sudo yum install php-pecl-Zip.
0
MatinicusRock