Я пытался включить curl на PHP 7.1.4, работающем с Apache HTTPD 2.4. На данный момент я предпринял следующие шаги:
Uncomment extension = php_curl.dll
Убедитесь, что путь ext задан правильно (я проверил это, включив openssl, который работает)
Добавление корневой папки PHP в мою переменную среды PATH
Полностью остановил сервер и запустил снова
Хотя функция var_dump (extension_loaded ('curl')); ложно, и curl не указан в phpinfo ();
Я запустил PHP --ri curl, и в нем указано: поддержка cURL => включена информация cURL => 7.53.1
Я также запустил деплистер для curl dll, и в нем указано, что все строки в порядке.
Не могли бы вы посоветовать мне какие-либо другие шаги отладки или глупые ошибки, которые я мог бы сделать (я чувствую, что потратил слишком много часов на изучение этой проблемы и свежего набора глаза ...)
Дополнительная информация о системе: Компилятор MSVC14 (Visual C ++ 2015)
Архитектура x64
t мой процесс не запускается? Если, например, я установил размер виртуальной памяти с помощью ulimit -v 1500000
, мой процесс завершится неудачно:
$ ./consume_memory 900
Traceback (most recent call last):
File "./consume_memory", line 14, in <module>
data = megabyte * count
MemoryError
Системные характеристики:
CentOS Linux release 7.2.1511 (Core)
Linux hostname 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
В bash, если мы выполним команду -V ulimit
, мы обнаружим, что ulimit является встроенной оболочкой
, поэтому мы можем выполнить help ulimit
, где указано
-m the maximum resident set size
, поэтому мы устанавливаем RSS. Чтобы увидеть, какой системный вызов использует bash, мы можем попробовать
$ strace bash -c 'ulimit -m 10000'
setrlimit(RLIMIT_RSS, {rlim_cur=10000*1024, rlim_max=10000*1024}) = 0
, а затем увидеть в man setrlimit
, что
RLIMIT_RSS. Определяет предел (в страницах) резидентного набора процесса (количество виртуальных страниц, находящихся в ОЗУ). Этот предел имеет действует только в Linux 2.4.x, x <30, и влияет только на вызовы в madvise (2) с указанием MADV_WILLNEED.
Таким образом, похоже, что в наши дни это не действует в Linux.