我已经安装了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:无法打开共享对象file:第0行的Unknown中没有这样的文件或目录 PHP警告:PHP启动:无法加载动态库'/usr/lib/php5/20090626+lfs/sqlite.so' - /usr/lib/php5/20090626+lfs/sqlite.so:无法打开共享对象文件:否第0行的Unknown中的此类文件或目录 已解析的其他.ini文件=> /etc/php5/cli/conf.d/curl.ini, 卷曲
我还通过创建一个名为testCurl.php的文件来测试curl,该文件包含以下内容:
<?php
echo ‘<pre>’;
var_dump(curl_version());
echo ‘</pre>’;
?>
当我导航到localhost / testCurl.php时出现错误:HTTP Error 500
任何人都可以帮我卷曲吗?
答案 0 :(得分:7)
你在php.ini中输错了信息
extension=php_curl.dll
在Ubuntu / Unix上
extension=php_curl.so
.so
表示共享对象,这是错误消息所说的动态库。在.dll
的Windows上,您可能只是混合了它。
您似乎尝试加载不存在的sqlite.so
。通常,当您通过apt在Ubuntu上安装库时,您不需要更改php.ini文件,因为软件包脚本可以解决这个问题,这要归功于软件包维护者的工作。
答案 1 :(得分:1)
如果你使用Ubuntu或者有多个php.ini,你可能会遇到启用extension = php_curl.dll的问题。
很奇怪但是我使用UBUNTU遇到了这个问题。出于某种原因,它调用.dll文件,但linux使用.so文件。
首先要做的是回复phpinfo();在一个.php文件中检查加载了什么php.ini。
配置文件(php.ini)路径/etc/php/7.1/apache2 加载配置文件/etc/php/7.1/apache2/something/php.ini
因此,如果您只在一个文件中进行更改,则可能无效。
在我的情况下wet /etc/php/7.1/apache2/php.ini并且CURL以这种方式调用: ;延长= curl.dll
更改为 延长= curl.so
保存并重启apache: sudo systemctl restart apache2
答案 2 :(得分:0)
我认为从php5中删除了对sqlite2的支持,因此在当前版本的软件包中不再提供sqlite.so。你可以从natty包中手动恢复它(这对我有用):
(https://lists.ubuntu.com/archives/ubuntu-server-bugs/2011-October/065547.html)