Я решил ответить более широко, чтобы, надеюсь, помочь большему количеству людей, когда они сталкиваются с проблемами, связанными с этим, и Google для ответов
(Примечание: php время выполнения и Загруженные расширения могут различаться в зависимости от интерфейса командной строки и при доступе с веб-сервера) .
Каковы системные требования для этой функции?
Функция CURLOPT_TCP_FASTOPEN
, которую вы хотите использовать, имеет некоторые системные требования, которые должны быть выполнены
Это следующие:
- У вас должно быть
Kernel version > 3.6 (linux)
- У вас должно быть
PHP 7.0.7
или выше - У вас должно быть
Curl(program) AND php{your/version}-curl 7.49.0
или выше - У вас должна быть
*nix
операционная система (macos, linux, bsd)
как отлаживать Какое требование не выполняется?
Тот факт, что константа не определена, указывает на то, что одна из этих зависимостей не выполняется, но как определить, какая?
версия ядра
Это просто, выполните следующую команду: uname -r
.
* 103 8 * Оно должно быть больше
3.6
Версия и параметры сборки Curl
Лучший способ проверить, доступна ли эта функция в curl, - это вызвать curl из cli с этим параметром, например: curl --tcp-fastopen -O http://google.com
Если этот запрос выполнен успешно, curl настроен правильно в вашей системе, поэтому проблема заключается в php
PHP версии и расширениях
Для веб-сервера
используйте phpinfo()
, чтобы проверить, не превышает ли php version
7.0.7
И что расширения php-curl
загружены
Для CLI
в тип командной строки php -v
версия должна быть больше, чем 7.0.7
.
Чтобы проверить расширения, введите в командной строке следующее php -m | grep curl
, эта команда должна вернуть curl
, если ничего не возвращается, расширение curl не загружается для php cli.