PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20131226/curl.so' - /usr/lib/php/20131226/curl.so: 未定义符号:第 0 行未知的 zend_unset_property
我正在使用 Ubuntu 14.04 LTS 和 PHP v5.6
同一台机器上还有其他版本
php5
和php7
,但php5.6
已启用。我尝试通过 安装 cURL
sudo apt-get install php5.6-curl
现在我得到了
无法加载动态库curl.so
运行后
php -i | grep ini
我得到以下内容
root@ubuntu:/etc/php/5.6/apache2# php -i | grep ini
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20131226/curl.so' - /usr/lib/php/20131226/curl.so: undefined symbol: zend_unset_property in Unknown on line 0
Configuration File (php.ini) Path => /etc/php/5.6/cli
Loaded Configuration File => /etc/php/5.6/cli/php.ini
Scan this dir for additional .ini files => /etc/php/5.6/cli/conf.d
Additional .ini files parsed => /etc/php/5.6/cli/conf.d/10-mysqlnd.ini,
/etc/php/5.6/cli/conf.d/10-opcache.ini,
/etc/php/5.6/cli/conf.d/10-pdo.ini,
/etc/php/5.6/cli/conf.d/15-xml.ini,
/etc/php/5.6/cli/conf.d/20-calendar.ini,
/etc/php/5.6/cli/conf.d/20-ctype.ini,
/etc/php/5.6/cli/conf.d/20-curl.ini,
/etc/php/5.6/cli/conf.d/20-dom.ini,
/etc/php/5.6/cli/conf.d/20-exif.ini,
/etc/php/5.6/cli/conf.d/20-fileinfo.ini,
/etc/php/5.6/cli/conf.d/20-ftp.ini,
/etc/php/5.6/cli/conf.d/20-gettext.ini,
/etc/php/5.6/cli/conf.d/20-iconv.ini,
/etc/php/5.6/cli/conf.d/20-json.ini,
/etc/php/5.6/cli/conf.d/20-mbstring.ini,
/etc/php/5.6/cli/conf.d/20-mysql.ini,
/etc/php/5.6/cli/conf.d/20-mysqli.ini,
/etc/php/5.6/cli/conf.d/20-pdo_mysql.ini,
/etc/php/5.6/cli/conf.d/20-phar.ini,
/etc/php/5.6/cli/conf.d/20-posix.ini,
/etc/php/5.6/cli/conf.d/20-readline.ini,
/etc/php/5.6/cli/conf.d/20-shmop.ini,
/etc/php/5.6/cli/conf.d/20-simplexml.ini,
/etc/php/5.6/cli/conf.d/20-sockets.ini,
/etc/php/5.6/cli/conf.d/20-sysvmsg.ini,
/etc/php/5.6/cli/conf.d/20-sysvsem.ini,
/etc/php/5.6/cli/conf.d/20-sysvshm.ini,
/etc/php/5.6/cli/conf.d/20-tokenizer.ini,
/etc/php/5.6/cli/conf.d/20-wddx.ini,
/etc/php/5.6/cli/conf.d/20-xmlreader.ini,
/etc/php/5.6/cli/conf.d/20-xmlwriter.ini,
/etc/php/5.6/cli/conf.d/20-xsl.ini
user_ini.cache_ttl => 300 => 300
user_ini.filename => .user.ini => .user.ini
init_command_executed_count => 0
init_command_failed_count => 0
com_init_db => 0
Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException
这是实际的警告
PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20131226/curl.so' - /usr/lib/php/20131226/curl.so: 未定义符号:第 0 行未知的 zend_unset_property
还检查了 cURL 是否不起作用。非常感谢任何形式的帮助。
将 php5.6(-common) 更新到较新的版本。这可以使用
apt-get update && apt-get upgrade
来完成。您刚刚将 php5.6-curl 更新到最新版本,但它依赖于较新的 php5.6。
如果有人在 php 7.0 中遇到同样的问题。 我用
sudo apt-get remove "curl"
删除了旧的“curl”,并用 sudo apt-get install php7.0-curl
安装了 php 7.0 版本。
消息现已消失,一切正常。
php7 上有同样的问题。刚刚做了一个
apt-get dist-upgrade
,现在警告消失了,curl 可以正常工作了。希望有帮助!
我通过运行“sudo apt-get update”命令解决了这个问题。 之后:
sudo apt-get install php-curl
我在 ubuntu 22.04 上使用 php8.1 时遇到了类似的问题,以下组合有效地解决了我的问题:
sudo apt-get dist-upgrade
// 升级所有系统包
sudo apt-get install php8.1-curl
// 安装目标php版本的curl
sudo systemctl restart apache2
// 重启本地服务器