
最近我们真的是因为一个问题解决就要衍生另一个问题,不过也是好事情,不断提升和学习,知识逐渐丰富,对疑难杂症处理会变得得心应手,所以每次的成功解决方案都要记录,并且我发现很多同行都在搜索类似问题,因此分享是肯定有作用滴。
PHP Warning: Module ‘zip’ already loaded 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/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.so’ (tried: /www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.so (/www/server/php/80/lib/php/extensions/no-debug-non-zts-20200930/redis.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/redis.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/redis.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 ‘swoole.so’ (tried: /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/swoole.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/swoole.so: cannot open shared object file: No such file or directory), /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/swoole.so.so (/www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/swoole.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 zip 遇到的错误包含多个 PHP 扩展加载问题,我将分别解决每个问题并提供完整的操作步骤。
Module 'zip' already loadedUnable to load dynamic library 'ixed.8.0.lin'Unable to load dynamic library 'redis.so'Unable to load dynamic library 'swoole.so'Unable to load dynamic library 'fileinfo.so'# 查找所有加载 zip 模块的配置
grep -r "extension.*zip" /www/server/php/72/etc/
# 编辑主 php.ini 文件
nano /www/server/php/72/etc/php.ini在 php.ini 中:
extension=zip.soextension=zip.so 的行
确保了没有重复 但是会报错

确保了 所有行里面都没有重复
# 检查是否编译进 PHP 核心
php -i | grep "Configure Command" | grep zip
# 如果已编译进核心,则完全删除 php.ini 中的 extension=zip.so# 完全移除 ixed 扩展引用
nano /www/server/php/72/etc/php.ini查找并删除或注释掉:
; extension=ixed.8.0.lin# 卸载现有 redis 扩展
pecl uninstall redis
# 安装正确版本的 redis 扩展
# 对于 PHP 7.2
pecl install redis-5.3.7
# 或者通过宝塔面板重新安装
# 宝塔面板 → PHP 7.2 → 安装扩展 → redis# 安装 swoole 扩展
# 对于 PHP 7.2
pecl install swoole-4.8.11
# 或者通过宝塔面板
# 宝塔面板 → PHP 7.2 → 安装扩展 → swoole# 重新安装 fileinfo 扩展
# 对于 PHP 7.2
apt-get install php7.2-fileinfo
# 或者通过宝塔面板
# 宝塔面板 → PHP 7.2 → 安装扩展 → fileinfocp /www/server/php/72/etc/php.ini /root/php.ini.baknano /www/server/php/72/etc/php.ini删除或注释以下内容:
; extension=ixed.8.0.lin
; extension=redis.so
; extension=swoole.so
; extension=fileinfo.sophp -m | grep zip如果显示两次,按照前面方法解决重复加载问题
/etc/init.d/php-fpm-72 restart
/etc/init.d/nginx restartphp -m | grep -E 'zip|redis|swoole|fileinfo'
php -i | grep extension_dir# 安装编译依赖
apt-get install -y php7.2-dev pkg-config libssl-dev
# 清理旧的编译文件
pecl uninstall redis
rm -rf /tmp/pear# 查看 PHP 错误日志
tail -f /www/server/php/72/var/log/php-fpm.log# 确保命令行和网站使用相同 PHP 版本
update-alternatives --config php针对 这个命令可以说到说到
update-alternatives --config php 命令详解update-alternatives --config php 是 Linux 系统中用于管理多个 PHP 版本切换的命令,主要功能是:
该命令通过维护一个”备选方案”系统来管理不同版本的 PHP:
/usr/bin/ 下有对应的二进制文件update-alternatives 创建 /usr/bin/php 的符号链接指向当前选择的版本php 命令都会使用当前选定的版本update-alternatives --config php输出示例:
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.0 80 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.0 80 manual mode
Press <enter> to keep the current choice[*], or type selection number:php -vsudo update-alternatives --install /usr/bin/php php /usr/bin/php8.1 81sudo update-alternatives --remove php /usr/bin/php7.4涉及 PHP 7.2 和 8.0 的混合使用,可以通过此命令:
建议运行后选择与您网站相同的 PHP 版本(很可能是 7.2),然后重新尝试安装和配置扩展。
卓伊凡我听从建议,直接最终解决方案,卸载7.2

然后奉劝大家 尽量在服务器不要多版本安装php ,项目多,那么现在轻量云服务器便宜,尽量同版本的放一堆
软件行业版本问题 真的 太太太太严重了

不要学我们 几十个放一台,几十个 放一台, 我们估计服务器成本又要增加了哎, 现在面对很多老项目 直接重写 都比升级要好。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。