gpt4 book ai didi

php - 为什么 curl 在我的用于发布到 Twitter 的 PHP 脚本中失败?

转载 作者:行者123 更新时间:2023-12-05 00:27:07 29 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to install php-curl in Ubuntu 16.04

(8 个回答)


2年前关闭。




我有一个使用 Oauth 发布到 Twitter 的 PHP 脚本。每当我使用它时,我都会收到以下错误:

PHP Notice: Use of undefined constant CURLOPT_CAINFO - assumed 'CURLOPT_CAINFO' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 353
PHP Notice: Use of undefined constant CURLOPT_CONNECTTIMEOUT - assumed 'CURLOPT_CONNECTTIMEOUT' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 354
PHP Notice: Use of undefined constant CURLOPT_HEADER - assumed 'CURLOPT_HEADER' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 355
PHP Notice: Use of undefined constant CURLOPT_HTTPHEADER - assumed 'CURLOPT_HTTPHEADER' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 356
PHP Notice: Use of undefined constant CURLOPT_RETURNTRANSFER - assumed 'CURLOPT_RETURNTRANSFER' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 357
PHP Notice: Use of undefined constant CURLOPT_SSL_VERIFYHOST - assumed 'CURLOPT_SSL_VERIFYHOST' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 358
PHP Notice: Use of undefined constant CURLOPT_SSL_VERIFYPEER - assumed 'CURLOPT_SSL_VERIFYPEER' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 359
PHP Notice: Use of undefined constant CURLOPT_TIMEOUT - assumed 'CURLOPT_TIMEOUT' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 360
PHP Notice: Use of undefined constant CURLOPT_URL - assumed 'CURLOPT_URL' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 361
PHP Notice: Use of undefined constant CURLOPT_USERAGENT - assumed 'CURLOPT_USERAGENT' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 362
PHP Notice: Use of undefined constant CURLOPT_ENCODING - assumed 'CURLOPT_ENCODING' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 366
PHP Notice: Use of undefined constant CURLOPT_POST - assumed 'CURLOPT_POST' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 381
PHP Notice: Use of undefined constant CURLOPT_POSTFIELDS - assumed 'CURLOPT_POSTFIELDS' in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 382
PHP Fatal error: Call to undefined function Abraham\TwitterOAuth\curl_init() in /var/www/example.com/myWebApp/vendor/abraham/twitteroauth/src/TwitterOAuth.php on line 397

我在 Stack Overflow 上搜索了这里是否有人已经解决了这个问题,而我看到的所有答案(例如 herehere )只说我需要安装 curl 和 php5-curl。但是,我已经安装了 curl 和 php5-curl:
# apt-get install php5-curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
php5-curl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
# apt-get install curl
Reading package lists... Done
Building dependency tree
Reading state information... Done
curl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
# php -v
PHP 5.5.36-4+deb.sury.org~precise+1 (cli)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

另一个答案( here )说我需要确保在我的 ini 中启用 curl确保引用 curl 的行没有被注释掉。看来我确实启用了 curl 并且没有注释掉:
# grep -n 'extension=curl.so' /etc/php5/conf.d/curl.ini
2:extension=curl.so

据我所知,我拥有所需的一切,那么为什么 curl 对我来说失败了?

更新:我想知道这是否有影响——我的服务器默认运行 PHP 5.3,但我需要 PHP 5.5。我使用命令 apt-add-repository ppa:ondrej/php然后升级到 PHP 5.5。升级 PHP 时是否有可能丢失了一些 curl 配置?

更新 2:我尝试将此代码放在我的服务器上:
echo 'Curl: ', function_exists('curl_init') ? 'Enabled' : 'Disabled';

...当我运行它时,我得到这个输出:

Curl: Enabled



似乎 Curl 可能已激活并在我的服务器上运行,并且问题更具体到 Twitter Oauth 代码。大多数 Twitter 代码来自在线资源——它不是我的——所以我不确定我能做些什么来解决它。

更新 3:我有一个本地测试服务器,PHP 脚本运行良好。因此,目前的情况是 PHP 代码在一台服务器上运行但不在另一台服务器上运行,但两台服务器都报告安装了 Curl。那么,一台服务器如何能够安装 curl 而不运行此脚本,而另一台服务器却不能呢?

更新 4:根据信息 I saw on other sites ,我尝试安装更多相关库如下:
apt-get install curl libcurl3 libcurl3-dev php5-curl php-curl

不幸的是,这并没有解决问题。

最佳答案

扩展似乎没有加载。

你需要做什么:

  • 使用 php --info | grep -i curl 检查 CLI 是否知道扩展名. php -m还将向您展示 php-cli 知道的模块。
  • 如果没有,请使用 php --info 检查加载了哪个配置文件
  • 使用 <?php phpinfo(); ?> 检查 Web 应用程序是否知道它,并搜索“CURL”
  • 如果没有,请重新启动您的网络服务器,例如使用 service apache2 restart/etc/init.d/apache2 restart .真的取决于你的发行版/网络服务器。
  • 关于php - 为什么 curl 在我的用于发布到 Twitter 的 PHP 脚本中失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37962436/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com