優れたソフトウェアと実用的なチュートリアル
PHP拡張機能のインストール、CentOSでソースコードを使用してZIP拡張機能をインストールする
CentOSへのインストール PHP拡張機能 で ZIP拡張子 PHPを7.XからPHP8.Xにアップグレードした後、2つのPHP拡張モジュールが無効になりました。1つはimagick拡張モジュール、もう1つはZIP拡張モジュールです。元のimagick拡張モジュールをアンインストールした後、peclコマンドを使用して公式PHP拡張モジュールライブラリにインストールできます。ZIP拡張モジュールをインストールしようとしたところ、インストールに失敗し、libzipに問題があることが判明しました。それでは、ZIP拡張モジュールも一緒にインストールしてみましょう。
zip拡張機能をインストールする前に、まずlibzipをインストールしてください。libzipの公式サイトにアクセスして、最新バージョンのlibzipをダウンロードしてください。
libzip 公式サイト:https://libzip.org/
Centos8 インストール ZIP 拡張機能
PHP7 から PHP8 にアップグレードした後、まず zip 拡張機能をインストールし、以前にインストールした zip と libzip をアンインストールします。
dnf zip libzip を削除する
libzipをアンインストールすると、php-pecl-zipもアンインストールされます。これはPHP7以前でインストールされていたzip拡張機能であり、アンインストールする必要があります。
アンインストール後、zipとlibzipを再インストールします
dnf インストール zip
このzipはメインのzipプログラムです。PHP拡張機能をインストールする前に、メインのzipプログラムをインストールする必要があります。
libzipはcentos8の公式ソフトウェアライブラリを使用できません。centos8のバージョンが比較的古く、公式ソフトウェアライブラリのlibzipのバージョンが低すぎます。zip拡張機能をインストールするとエラーが発生し、インストールを実行できません。
次に、libzipの公式サイトから最新バージョンのlibzipをダウンロードします。
#libzip をダウンロードします wget https://libzip.org/download/libzip-1.9.2.tar.xz #libzip を解凍します tar -xvf libzip-1.9.2.tar.xz #libzip フォルダに入り、インストールの準備をします cd libzip-1.9.2
libzip をインストールする前に、まず cmake3 をインストールする必要があります。libzip をコンパイルおよびインストールするには cmake3 が必要です。
dnf インストール -y cmake3
最後にlibzipをインストールします
# ビルド後、フォルダーに入ります mkdir build && cd build # compile cmake .. # install libzip make && make install
libzip が正常にインストールされたら、zip 拡張機能をインストールします。
pecl インストール zip
または、zip 拡張ソースを使用してインストールします。
PHP公式サイトのPHP拡張機能ウェブサイトhttps://pecl.php.net/package/zipPHP拡張機能の最新バージョンをダウンロード
peclコマンドを使ってインストールできます
wget https://pecl.php.net/get/zip-1.21.1.tgz pecl インストール zip-1.21.1.tgz
コンパイルとインストールも使用できます
wget https://pecl.php.net/get/zip-1.21.1.tgz tar -xvf zip-1.21.1.tgz cd zip-1.21.1 phpize ./configure make && make install
zip拡張機能は正常にインストールされましたが、エラーが頻繁に報告されます。 php -m
コマンドを実行して、拡張機能が正しくインストールされているかどうかを確認してください。エラーが報告された場合は、エラーの処理を続行する必要があります。
システムエラー「libzip.so.5 が見つかりません」の解決策
zip 拡張機能がインストールされると、通常、「動的ライブラリ「zip.so」をロードできません」というエラーが発生します。
PHP 警告: PHP 起動: 動的ライブラリ 'zip.so' をロードできません (試行: /usr/lib64/php/modules/zip.so (libzip.so.5: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません)、/usr/lib64/php/modules/zip.so.so (/usr/lib64/php/modules/zip.so.so: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません) ディレクトリ)) 不明な行 0
警告: PHP 起動: 動的ライブラリ 'zip.so' をロードできません (試行: /usr/lib64/php/modules/zip.so (libzip.so.5: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません)、/usr/lib64/php/modules/zip.so.so (/usr/lib64/php/modules/zip.so.so: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません)) 不明な行 0
zip.so をロードするときに libzip.so.5 ファイルが見つからないため、libzip.so.5 ファイルが必要です。
libzip.so.5 ファイルは通常、/usr/local/lib64 にインストールされます。zip 拡張機能を使用する場合は、libzip.so.5 ファイルを /usr/local/lib/ に配置する必要があります。
FTP を使用して、/usr/local/lib64 フォルダー内の libzip.so.5 ファイルを /usr/local/lib/ フォルダーにコピーし、ファイルのアクセス許可を 755 に変更します。
もう 1 つの方法は、zip.so をそれぞれ /usr/local/lib64 ディレクトリと /usr/local/lib ディレクトリにソフト リンクし、idconfig コマンドを使用して有効にすることです。
ln -s /usr/lib64/php/modules/zip.so /usr/local/lib64/zip.so && ldconfig ln -s /usr/lib64/php/modules/zip.so /usr/local/lib/zip.so && ldconfig