我已经安装了curl:
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
我已经更新了我的 php.ini 文件以包括:
extension=php_curl.dll
我检查curl是否正在使用以下命令:
php -i | grep curl
我收到以下消息:
PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php5/20090626+lfs/php_curl.dll' - /usr/lib/php5/20090626+lfs/php_curl.dll:无法打开共享对象文件:第 0 行“未知”中没有此类文件或目录 PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php5/20090626+lfs/sqlite.so' - /usr/lib/php5/20090626+lfs/sqlite.so:无法打开共享对象文件:否此类文件或目录位于第 0 行未知 解析的其他 .ini 文件 => /etc/php5/cli/conf.d/curl.ini, 卷曲
我还通过创建一个名为 testCurl.php 的文件来测试curl,其中包含以下内容:
<?php
echo ‘<pre>’;
var_dump(curl_version());
echo ‘</pre>’;
?>
当我导航到 localhost/testCurl.php 时,出现错误:HTTP 错误 500
任何人都可以帮助我让curl 工作吗?
您在 php.ini 中输入了错误的信息
extension=php_curl.dll
在 Ubuntu/Unix 上是
extension=php_curl.so
.so
表示 共享对象,即错误消息提到的动态库。在 Windows 上,这是 .dll
,您可能只是混合了它。
看来您尝试加载不存在的
sqlite.so
。通常,当您通过 apt 在 Ubuntu 上安装库时,不需要更改 php.ini 文件,因为由于软件包维护者的工作,软件包脚本会处理这些问题。
如果您使用 Ubuntu 或有多个 php.ini,您可能会遇到启用 extension=php_curl.dll 的问题。
很好奇,但我在使用 UBUNTU 时遇到了这个问题。由于某种原因它调用了 .dll 文件,但 linux 使用 .so 文件。
首先要做的是 echo phpinfo();在 .php 文件中检查 php.ini 正在加载的内容。
配置文件(php.ini)路径/etc/php/7.1/apache2 加载的配置文件/etc/php/7.1/apache2/something/php.ini
因此,如果您仅在一个文件中进行更改,则可能不会产生正确的效果。
在我的例子中, /etc/php/7.1/apache2/php.ini 中的内容和 CURL 是这样调用的: ;扩展名=curl.dll
更改为 扩展名=curl.so
保存并重启apache: sudo systemctl 重新启动 apache2
我认为 php5 中删除了对 sqlite2 的支持,因此 sqlite.so 在当前版本的软件包中不再可用。您可以从 natty 包中手动恢复它(这对我有用):
(https://lists.ubuntu.com/archives/ubuntu-server-bugs/2011-October/065547.html)
我已经使用
apt-get install php-curl
安装了 php-curl
但是
php -i | grep curl
,这个命令没有显示curl,
然后我也指定了版本
sudo apt-get install php8.1-curl
,然后就成功了