PHP - 无法加载动态库 '/usr/lib/php/20151012/php_curl.dll' - /usr/lib/php/20151012/php_curl.dll。

5

我遇到了一个奇怪的错误(系统是Ubuntu 16.04):

[Mon Sep 04 13:07:17.219992 2017] [mpm_prefork:notice] [pid 27798] AH00169: caught SIGTERM, shutting down
[Mon Sep 04 13:07:17.302181 2017] [so:warn] [pid 27874] AH01574: module php7_module is already loaded, skipping
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_curl.dll' - /usr/lib/php/20151012/php_curl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
[Mon Sep 04 13:07:17.322006 2017] [mpm_prefork:notice] [pid 27875] AH00163: Apache/2.4.18 (Ubuntu) configured -- resuming normal operations
[Mon Sep 04 13:07:17.322026 2017] [core:notice] [pid 27875] AH00094: Command line: '/usr/sbin/apache2'

PHP版本为7.1.19。我安装了curl (apt-get install php7.1-curl),在php.ini文件中添加了extension=curl.co(并注释掉了extension=php_curl.dll),重启了Apache服务,但错误仍然存在(我尝试注释掉extension=curl.co,但错误仍在)。
这是我在页面上(Laravel设置)遇到的错误。
Call to undefined function App\curl_init()

所有东西都已经安装好了,配置文件也按要求设置好了,我不知道这里可能出了什么问题。


你正在运行哪个操作系统?我猜测是Ubuntu,因为你提到了“apt-get”?通常情况下,你不需要手动启用库。它们通常会被安装程序启用(通过在类似于“/etc/php/7.1/apache2/conf.d/”或类似位置添加符号链接)。据我所知,库文件使用的是“.so”,而不是“.co”。 - M. Eriksson
两件事:1-你使用apt-get安装curl,这表明你在使用Linux,但是你试图使用dll文件,这表明你在使用Windows?2-检查php ini中extension_dir的设置,然后检查该目录中是否存在该文件。 - Bananaapple
请查看此参考链接:https://dev59.com/13RB5IYBdhLWcg3w4bAo - Jigar Shah
@Bananaapple - 检查了 curl 应该存在的目录(在 mods-available 中),但它不在那里,重新安装 curl 也没有任何作用。 - Sasha
@ Sasha - 你尝试过保持ini文件不变,然后运行 sudo apt-get install php7.1-curl 吗?理论上这应该是你需要做的全部操作。当然,在此之后还需要重新启动apache。 - Bananaapple
显示剩余2条评论
1个回答

2

/etc/php/7.1/mods-available/curl.ini文件的内容应该是:

extension=curl.so

请注意扩展名应为.so而不是.co
然后,您可以通过运行以下命令在PHP中启用模块:
$ sudo phpenmod curl

最后,您可能需要重新启动Apache:
$ sudo systemctl restart apache2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接