因為公司有個需求之前寫了個插件,用到了PHPOffice,這個包其中的PHPEcexl用到了ZIP擴展,導致一直失敗。之前7.2是沒有問題的,懷疑是PHP更新版本導致的問題,隨后查看日志發現一條php Class 'ZipArchive' not found
,然后去查看PHPINFO,發現確實沒有ZIP擴展。
隨后百度了下寶塔PHP7.3 ZIP擴展,查到了解決方案。
原因回顧:
早期安裝的Php7.3是獨立編譯zip擴展,后續安裝及升級是整合編譯的,導致升級后會重復加載zip模塊.
為避免這個錯誤.
后面的PHP就不再單獨編譯ZIP擴展了。
然后呢,PHP 7.3.8,ZIP 模塊不再整合了,在面板配置中卻沒有安裝ZIP擴展的選擇。
這樣新安裝php7.3就會出現phpzip丟失的問題
但是,ZIP擴展本來就包含在軟件包里,解決這個問題,只需要手動進行添加即可.
cd /www/server/php/73/src/ext/zip/
/www/server/php/73/bin/phpize
./configure --with-php-config=/www/server/php/73/bin/php-config
make && make install
安裝好zip擴展,還需要在PHP配置文件中啟用.
在php.ini中添加這一行:
extension = /www/server/php/73/lib/php/extensions/no-debug-non-zts-20180731/zip.so
然后重啟php7.3即可.
安裝過程會報錯、libzip不支持或未安裝
安裝libzip,即可解決wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz cd libzip-1.2.0
./configure
make && make install
zipconf.h找不到,添加軟連接,即可解決
ln -s /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h