由于服务器安装了宝塔,经常弹出更新,所以将5.9升级到7.9.6,安装php8.1后无法启动,出现下面两个问题,经过查阅发现需要安装一些包去解决。

  • 错误1:/www/server/php/81/sbin/php-fpm: symbol lookup error: /www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/zip.so: undefined symbol: zip_libzip_version

  • 错误2:/etc/init.d/php-fpm-81: line 53: 54503 Segmentation fault $php_fpm_BIN --daemonize $php_opts

解决错误1

    yum remove -y libzip*
    rm -rf /usr/local/lib/libzip*
    ldconfig

    mkdir rpm && cd rpm
    wget -4 http://download.bt.cn/rpm/remi/7/libzip5-1.5.2.rpm
    wget -4 http://download.bt.cn/rpm/remi/7/libzip5-devel-1.5.2.rpm
    wget -4 http://download.bt.cn/rpm/remi/7/libzip5-tools-1.5.2.rpm
    yum install * -y
    cd ../ && rm -rf rpm

    cd /www/server/php/81/src/ext/zip/
    make clean
    /www/server/php/81/bin/phpize
    ./configure --with-php-config=/www/server/php/81/bin/php-config
    make && make install
    echo "extension = /www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/zip.so" >> /www/server/php/81/etc/php.ini
    /etc/init.d/php-fpm-81 restart

解决错误2

    yum autoremove libzip5.x86_64 libzip5-devel.x86_64 libzip5-tools.x86_64