
PHP Warning: PHP Startup: Unable to load dynamic library ‘zip.so’ (tried: /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/zip.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/zip.so: cannot open shared object file: No such file or directory), /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/zip.so.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library ‘/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/fileinfo.so’ (tried: /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/fileinfo.so (/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/fileinfo.so: undefined symbol: zend_string_init_interned), /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718//www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/fileinfo.so.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718//www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/fileinfo.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library ‘ixed.8.0.lin’ (tried: /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/ixed.8.0.lin (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/ixed.8.0.lin: cannot open shared object file: No such file or directory), /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/ixed.8.0.lin.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/ixed.8.0.lin.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library ‘/www/server/
这是个很麻烦的问题,我们字面理解是 未安装扩展

实际他的麻烦在于我们安装了扩展,我们一步步看
针对特别是 zip.so 和 fileinfo.so 扩展未能正确加载。以下是完整的解决方案:
zip.so 和 fileinfo.so 扩展文件缺失或版本不匹配php -v/www/server/php/72/)# 安装 zip 扩展
sudo apt-get install php7.2-zip
# 检查 fileinfo 扩展
sudo apt-get install php7.2-fileinfo
# 重启 PHP 服务
sudo service php7.2-fpm restart/www/server/php/80/)# 安装 zip 扩展
sudo apt-get install php8.0-zip
# 检查 fileinfo 扩展
sudo apt-get install php8.0-fileinfo
# 重启 PHP 服务
sudo service php8.0-fpm restart编辑 php.ini 文件(根据您的 PHP 版本):
# 对于 PHP 7.2
sudo nano /www/server/php/72/etc/php.ini
# 对于 PHP 8.0
sudo nano /www/server/php/80/etc/php.ini查找并确保以下行正确(移除重复或错误的扩展引用):
extension=zip.so
extension=fileinfo.so
; 移除或注释掉以下错误行
; extension=ixed.8.0.linsudo chmod -R 755 /www/server/php/72/lib/php/extensions/
sudo chmod -R 755 /www/server/php/80/lib/php/extensions/php -m | grep zip
php -m | grep fileinfosudo service php-fpm restart
# 或者特定版本
sudo service php7.2-fpm restart
sudo service php8.0-fpm restart确保项目使用的 PHP 版本与命令行一致:
# 检查项目使用的 PHP 版本
composer show -p | grep phpsudo add-apt-repository ppa:ondrej/php
sudo apt-get update# 重新安装扩展
sudo apt-get install --reinstall php8.0-zip php8.0-fileinfo最后验证问题是否解决:
php artisan --version在宝塔面板中安装 PHP 扩展非常简单,以下是详细步骤:
访问您的宝塔面板地址(通常是 http://服务器IP:8888)并登录
安装完成后,点击「服务」选项卡中的「重启」按钮
如果图形界面安装失败,可以通过 SSH 连接服务器执行:
# 进入宝塔的 PHP 扩展目录
cd /www/server/php/72/src/ext # 请将72替换为您实际使用的PHP版本
# 安装 zip 扩展
wget https://pecl.php.net/get/zip-1.20.0.tgz
tar -zxvf zip-1.20.0.tgz
cd zip-1.20.0
/www/server/php/72/bin/phpize # 替换为您的PHP路径
./configure --with-php-config=/www/server/php/72/bin/php-config
make && make install
# 安装 fileinfo 扩展
cd /www/server/php/72/src/ext
wget https://pecl.php.net/get/fileinfo-1.0.5.tgz
tar -zxvf fileinfo-1.0.5.tgz
cd fileinfo-1.0.5
/www/server/php/72/bin/phpize
./configure --with-php-config=/www/server/php/72/bin/php-config
make && make install
# 添加到 php.ini
echo "extension=zip.so" >> /www/server/php/72/etc/php.ini
echo "extension=fileinfo.so" >> /www/server/php/72/etc/php.ini
# 重启 PHP
/etc/init.d/php-fpm-72 restart # 根据实际版本调整
我们使用的是8.0

执行到最后 提示7.2已经输出了 在目录,并且成功安装完成。
但是 实际我们是安装了有扩展的,因此问题来了
php -m | grep zip
php -m | grep fileinfo# 安装编译依赖
yum install -y libzip-devel # CentOS
# 或
apt-get install -y libzip-dev # Ubuntu/Debian/www/server/php/72/var/log/php-fpm.logphp artisan config:clear
php artisan cache:clear然后其实都提示安装了,包括7.2也是安装的

您看到扩展已安装但仍报错的问题,主要是因为 PHP 配置文件错误地引用了不存在的扩展路径,以及存在 PHP 版本混淆的情况。以下是系统化的解决方案:
zip.so (PHP 7.2)fileinfo.so (PHP 8.0)ixed.8.0.lin (加密扩展)# 查看当前命令行使用的 PHP 版本
php -v
# 查看宝塔面板中网站使用的 PHP 版本
cat /www/server/panel/vhost/nginx/您的网站.conf | grep php-cgi# 对于 PHP 7.2
nano /www/server/php/72/etc/php.ini
# 对于 PHP 8.0
nano /www/server/php/80/etc/php.ini; 移除或注释这些错误配置
; extension=zip.so
; extension=/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/fileinfo.so
; extension=ixed.8.0.lin很神奇的就是

# 对于 PHP 7.2
cd /www/server/php/72/src/ext
rm -rf zip-* fileinfo-*
wget https://pecl.php.net/get/zip-1.20.0.tgz
wget https://pecl.php.net/get/fileinfo-1.0.5.tgz
tar -zxvf zip-1.20.0.tgz
tar -zxvf fileinfo-1.0.5.tgz
cd zip-1.20.0
/www/server/php/72/bin/phpize
./configure --with-php-config=/www/server/php/72/bin/php-config
make && make install
cd ../fileinfo-1.0.5
/www/server/php/72/bin/phpize
./configure --with-php-config=/www/server/php/72/bin/php-config
make && make install基本上 面板无效 我们手动来试试

只能手动

这回显示ok了

; 对于 PHP 7.2
extension=zip.so
extension=fileinfo.so
; 对于 PHP 8.0(如果需要)
; extension=zip
; extension=fileinfo这回我们检查下 php. ini 配置文件

果然有2个 ,带引号的 是错误的。

然后我们针对php8.0版本再次重复一遍
# 检查实际扩展目录
ls /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/
# 如果扩展存在但名称不对,创建软链接
cd /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/
ln -s zip.so.1.0 zip.so
ln -s fileinfo.so.1.0 fileinfo.so
# 更新动态链接库缓存
ldconfig# 重启 PHP 和 Web 服务器
/etc/init.d/php-fpm-72 restart
/etc/init.d/nginx restart
再次使用重启

这里又出现个 新问题 但是这个问题 在另一篇讲了
不过 重启 是生效了 至少 安装生效了
# 或者使用宝塔面板的重启功能php -m | grep -E 'zip|fileinfo'
php -i | grep extension_dir
php --ini我们验证修复

能检测到 说明问题已经解决,接下来解决下一个问题
# 检查扩展文件是否存在
ls -la /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/zip.so
# 检查文件权限
chmod 755 /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/*.so# 确保命令行和网站使用相同PHP版本
update-alternatives --config phptail -f /www/server/php/72/var/log/php-fpm.log通过以上步骤,您应该能彻底解决这个扩展加载错误问题。如果仍有问题,可能需要考虑完全卸载并重新安装特定 PHP 版本。 如果仍有问题,请提供以下信息以便进一步诊断:
php -v 的输出php --ini 的输出/www/server/php/72/etc/php.ini 中关于扩展加载的部分内容原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。