PHP cURL внезапно не загружается в Windows 10 Pro

Простой пример php_curl больше не работает на моем ноутбуке с Windows 10 . Раньше работало.

Fatal error: Uncaught Error: Call to undefined function curl_init() in C:\Users\path\curl.php:3 Stack trace: #0 {main} thrown in C:\Users\path\curl.php on line 3

Мой C:\php7\php.ini имеет расширение=C:\php7\ext\php_curl.dll
php_curl.dll существует в C:\php7\ext

PHP версии 7.0.30
Windows 10 Pro, версия 1607, сборка 14393.2189

Но мой loclahost/phpinfo.php не имеет cURL. С чего вдруг все исчезло?

PS: Скрипт работал в командной строке. Просто Apache не загружает расширение.


person anjanesh    schedule 16.05.2018    source источник
comment
Где установлен ваш Apache. Загляните в папку bin и вы, вероятно, найдете еще один файл php.ini. Это то, что использует PHP при работе под Apache.   -  person RiggsFolly    schedule 16.05.2018
comment
Чтобы быть абсолютно уверенным, откуда PHP получает свою конфигурацию, ПОСМОТРИТЕ вывод phpinfo() в элементе с меткой Loaded Configuration File.   -  person RiggsFolly    schedule 16.05.2018
comment
Файл php.ini в C:\php7 обычно используется только для настройки PHP CLI.   -  person RiggsFolly    schedule 16.05.2018
comment
Загруженный файл конфигурации: C:\php7\php.ini   -  person anjanesh    schedule 16.05.2018
comment
Вот что я добавил в свой файл httpd.conf: AddHandler application/x-httpd-php .php AddType application/x-httpd-php .php .html LoadModule php7_module "c:/php7/php7apache2_4.dll" PHPIniDir "c:/php7"   -  person anjanesh    schedule 16.05.2018
comment
Затем вы проверили журнал ошибок PHP?   -  person RiggsFolly    schedule 16.05.2018
comment
И действительно ли другой код PHP работает нормально?   -  person RiggsFolly    schedule 16.05.2018
comment
Поместите php.ini в корневую папку Apache, на один уровень выше bin. Вы также можете отладить конфигурацию с помощью простого скрипта, такого как <? phpinfo() ?>   -  person rustyx    schedule 16.05.2018


Ответы (2)


не знаю, почему это suddenly stopped working, но сначала запустите <?php phpinfo(~0); и проверьте, какой файл php.ini фактически загружен (это позволяет избежать бесполезного редактирования неправильного файла php.ini) https://i.imgur.com/  KBgZxYv.png (в данном примере это /etc/php/7.0/fpm/php.ini), затем отредактируйте этот файл php.ini, если в этом файле на самом деле есть строка extension=C:\php7\ext\php_curl.dll, то некоторая комбинация следующих настроек установлена ​​неправильно:

display_startup_errors это Off, измените его на On

display_errors это Off, измените его на On

error_reporting это не E_ALL, измените его на error_reporting=E_ALL (и никак иначе, не как error_reporting= E_ALL & ~E_NOTICE или как там, просто E_ALL)

html_errors это Off, измените его на On

затем перезапустите apache, снова проверьте страницу phpinfo() и убедитесь, что новые параметры конфигурации действительно загружены, затем запустите <?php curl_init();, и он должен показать ошибку о том, почему расширение curl не может быть загружено.

person hanshenrik    schedule 16.05.2018
comment
Проверил все ваши статусы. Загруженный файл конфигурации — C:\php7\php.ini . Все настройки включены, включены, E_ALL и включены. \Users\anjan›C:\Apache24\bin\httpd.exe запускается без ошибок. - person anjanesh; 16.05.2018
comment
@anjanesh, а что происходит, когда вы загружаете страницу, содержащую <?php echo "start."; $ch=curl_init(); var_dump($ch); echo "end.";?>? - person hanshenrik; 16.05.2018
comment
Начало. Неустранимая ошибка: необработанная ошибка: вызов неопределенной функции curl_init() в C:\Users\path\test\curl.php:3 Трассировка стека: #0 {main} брошено в C:\Users\path\test\curl.php на линии 3 - person anjanesh; 16.05.2018
comment
@anjanesh хм, error_log пуст, поэтому любые ошибки отправляются в журнал ошибок apache. что говорит директива ErrorLog httpd.conf apache? (в xampp по умолчанию это ErrorLog "logs/error.log") - person hanshenrik; 16.05.2018
comment
Журналы ErrorLog/error.log [Пятница, 18 мая, 18:43:42.211169 2018] [:error] [pid 10844:tid 1160] [client ::1:52046] Неустранимая ошибка PHP: Uncaught Error: Call to undefined function curl_init() в C:\\Users\\anjan\\Dropbox\\vhosts\\planbuildr\\test\\curl.php:3\nТрассировка стека:\n#0 {main}\n добавлено в C:\\Users\\ anjan\\Dropbox\\vhosts\\planbuildr\\test\\curl.php в строке 3 - person anjanesh; 18.05.2018
comment
@anjanesh type C:\php7\php.ini | pastebinit - person hanshenrik; 18.05.2018

Я наткнулся на некоторые ссылки на другие ответы StackOverflow (ссылки будут размещены здесь, если я снова отследю их). У меня был Apache 2.4.23 Win64 - я переустановил Apache на последнюю версию - 2.4.33 Win64 - и теперь cURL работает.

person anjanesh    schedule 19.06.2018