在Centos 7系统上运行。phpinfo()说curl已启用,但当我运行以下代码时:
<?php
// API
$url = 'https://api.openai.com/v1/embeddings';
// Create a new cURL resource
$ch = curl_init($url);
?>
我得到错误:PHP致命错误:
未捕获的错误:调用未定义的函数curl_init()
如果我尝试安装它,它说它已经安装:
yum install php-curl
Package php-common-8.1.14-1.el7.remi.x86_64 already installed and latest version
完全没有答案。我可以从这里尝试什么?为什么curl不执行?
php --version
PHP 8.1.14 (cli) (built: Jan 4 2023 06:45:14) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.14, Copyright (c) Zend Technologies
with Zend OPcache v8.1.14, Copyright (c), by Zend Technologies
phpinfo();
cURL support enabled
cURL Information 7.29.0
php -i | grep "curl"
/etc/php.d/20-curl.ini,
curl
curl.cainfo => no value => no value
在/etc/php. d/20-curl.ini文件中:
延伸= curl . so
yum list *curl*
Installed Packages
curl.x86_64 7.29.0-59.el7_9.1 installed
libcurl.x86_64 7.29.0-59.el7_9.1 installed
libcurl-devel.x86_64 7.29.0-59.el7_9.1 installed
python-pycurl.x86_64 7.19.0-19.el7 @base
Available Packages
collectd-curl.x86_64 5.8.1-1.el7 epel
collectd-curl_json.x86_64 5.8.1-1.el7 epel
collectd-curl_xml.x86_64 5.8.1-1.el7 epel
curlftpfs.x86_64 0.9.2-14.el7 epel
flickcurl.x86_64 1.25-2.el7.nux nux-dextopflickcurl-debuginfo.x86_64 1.25-2.el7.nux nux-dextopflickcurl-devel.x86_64 1.25-2.el7.nux nux-dextopfuse-curlftpfs.x86_64 0.9.1-1.el6.rf rpmforge
libcurl.i686 7.29.0-59.el7_9.1 updates
libcurl-devel.i686 7.29.0-59.el7_9.1 updates
nbdkit-plugin-curl.x86_64 1.2.7-2.el7 epel
ocaml-curl.x86_64 0.7.5-3.el7 epel
ocaml-curl-devel.x86_64 0.7.5-3.el7 epel
perl-WWW-Curl.x86_64 4.15-13.el7 base
php-pear-Net-Curl.noarch 1.2.5-10.el7 epel
python34-pycurl.x86_64 7.43.0-7.el7 epel
python36-pycurl.x86_64 7.43.0-7.el7 epel
uwsgi-alarm-curl.x86_64 2.0.18-8.el7 epel
uwsgi-plugin-curl-cron.x86_64 2.0.18-8.el7 epel
1条答案
按热度按时间xuo3flqw1#
我花了一个小时在ChatGPT 3上试图解决这个问题。我不能说人工智能真的解决了这个问题,但在会议的早期它确实说了这句话:
您尝试运行的PHP脚本使用的PHP版本不正确。请确保您运行的脚本使用的是安装了cURL扩展的正确PHP版本。
运行PHP脚本的用户无权访问cURL扩展。请尝试使用其他用户运行该脚本,或设置对该脚本的正确权限。
PHP脚本可能有一些语法错误,这会导致无法识别curl_init()函数。请验证您的脚本不包含任何语法错误。
PHP脚本在上载或下载过程中可能已损坏。请尝试重新上载或重新下载脚本,并确保脚本未损坏。
安装的curl版本可能有问题。请尝试更新curl版本,看看是否可以解决此问题。
文件的损坏被证明是罪魁祸首。无论如何,它让我通过缩小问题范围的步骤最终帮助我解决了它。我真的不能推荐它足够如果你卡住了,似乎不能在这里得到任何回应,你可能想试试:https://chat.openai.com/chat
仅供参考,我与AI进行的完整故障排除对话如下:https://sharegpt.com/c/GJVQs0n
无论如何,在彻底验证curl在php中已经安装并启用,并且apache调用了正确的php版本之后,我终于意识到问题出在代码本身,不是语法,而是代码中的一些看不见的字符导致了错误,在重新输入相同的代码之后,它工作了。
如果有人知道如何在文本文件中检测这些字符,请在评论中留下信息。谢谢!