首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP8.1-使用未定义的常量CURLOPT_TCP_FASTOPEN

PHP8.1-使用未定义的常量CURLOPT_TCP_FASTOPEN
EN

Stack Overflow用户
提问于 2022-11-14 17:45:53
回答 2查看 69关注 0票数 0

我犯了这个错误。有什么想法吗?

谢谢。

错误:

代码语言:javascript
复制
PHP Fatal error:  Uncaught Error: Undefined constant "CURLOPT_TCP_FASTOPEN"

操作系统:

代码语言:javascript
复制
CentOs 7.x

版本:

代码语言:javascript
复制
3.10.0-1160.76.1.el7.x86_64

$curl -tcp-快速打开-O http://google.com

代码语言:javascript
复制
curl: option --tcp-fastopen: is unknown
curl: try 'curl --help' or 'curl --manual' for more information

$ php -v

代码语言:javascript
复制
PHP 8.1.12 (cli) (built: Oct 25 2022 17:30:00) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.12, Copyright (c) Zend Technologies

$cat /proc/sys/net/ipv4 4/tcp_

代码语言:javascript
复制
3

已使用以下方法安装PHP:

代码语言:javascript
复制
sudo yum-config-manager --disable 'remi-php*'
sudo yum-config-manager --enable remi-php81
sudo yum repolist
sudo yum -y install php php-{cli,mbstring,curl,json}

php.ini

代码语言:javascript
复制
cURL support => enabled
cURL Information => 7.29.0
Age => 3
Features
AsynchDNS => Yes
CharConv => No
Debug => No
GSS-Negotiate => Yes
IDN => Yes
IPv6 => Yes
krb4 => No
Largefile => Yes
libz => Yes
NTLM => Yes
NTLMWB => Yes
SPNEGO => No
SSL => Yes
SSPI => No
TLS-SRP => No
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host => x86_64-redhat-linux-gnu
SSL Version => NSS/3.53.1
ZLib Version => 1.2.7
libSSH Version => libssh2/1.8.0
EN

回答 2

Stack Overflow用户

发布于 2022-11-15 09:10:07

您正在使用的是CentOS 7,它已有8年历史,已接近生命的尽头(2024年6月)。

我衷心建议使用最新的发行版(8或9),特别是现代特性。

CURLOPT_TCP_FASTOPEN是在curl 7.49中引入的

  • EL-7有7.19
  • EL-8有7.61
  • EL-9有7.76

因此,如果不重新构建几乎所有的内容,就无法修复EL-7中的错误。

票数 1
EN

Stack Overflow用户

发布于 2022-11-15 10:57:16

CURLOPT_TCP_FASTOPEN需要libcurl 7.49.0或更高版本,而您的PHP是针对libcurl 7.29.0编译的。升级您的libcurl并再次编译php。

也许试一下

代码语言:javascript
复制
git clone -b 'OpenSSL_1_1_1k' --single-branch --depth 1 https://github.com/openssl/openssl
cd openssl
./config
make -j $(nproc)
mkdir lib
cp *.a lib;
cd ..
git clone -b 'curl-7_76_1' --single-branch --depth 1 https://github.com/curl/curl.git
cd curl
./buildconf
LDFLAGS="-static" ./configure --with-ssl=$(realpath ../openssl) --enable-static
make -j $(nproc)
cd ..
git clone -b 'PHP-8.1' --single-branch --depth 1 'https://github.com/php/php-src.git'
cd php-src;
./buildconf;
./configure --with-curl=$(realpath ../curl)
make -j $(nproc)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74435831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档