У меня установлен curl:
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl
и я обновил файл php.ini, чтобы включить:
extension=php_curl.dll
Я проверяю, работает ли curl со следующей командой:
php -i | grep curl
и я получаю следующее сообщение:
PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib/php5/20090626+lfs/php_curl.dll' -/usr/lib/php5/20090626+lfs/php_curl.dll: не удается открыть общий объект file: Нет файла или каталога в Unknown в строке 0 PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib/php5/20090626+lfs/sqlite.so' -/usr/lib/php5/20090626+lfs/sqlite.so: не удается открыть файл общих объектов: нет такой файл или каталог в Unknown в строке 0 Дополнительные .ini файлы parsed = > /etc/php5/cli/conf.d/curl.ini, свернуться
Я также проверил curl, создав файл testCurl.php, который содержит следующее:
<?php
echo ‘<pre>’;
var_dump(curl_version());
echo ‘</pre>’;
?>
Когда я перехожу к localhost/testCurl.php, я получаю сообщение об ошибке: HTTP Error 500
Может ли кто-нибудь помочь мне заставить работать завиток?
Вы помещаете неправильную информацию в свой php.ini
extension=php_curl.dll
В Ubuntu/Unix, который является
extension=php_curl.so
.so
означает общий объект, то есть динамическую библиотеку, о которой говорят сообщения об ошибках. В Windows .dll
вы, вероятно, просто смешали это.
И, похоже, вы пытаетесь загрузить sqlite.so
, который не существует. Обычно вам не нужно менять файл php.ini при установке библиотек на Ubuntu с помощью apt, потому что скрипты пакетов позаботятся об этом благодаря работе сопровождающих пакетов.
Если вы используете Ubuntu или имеете более одного php.ini, вы можете столкнуться с этой проблемой включения расширения = php_curl.dll.
Любопытно, но я столкнулся с этой проблемой, используя UBUNTU. По какой-то причине он вызывал DLL файл, но linux использует .so файлы.
Первое, что нужно сделать, это echo phpinfo(); в .php файле, чтобы проверить загрузку php.ini.
Файл конфигурации (php.ini) Путь /etc/php/ 7.1/apache2 Загруженный файл конфигурации /etc/php/ 7.1/apache2/something/php.ini
Итак, если вы меняете только в одном файле, это может не иметь правильного эффекта.
В моем случае, когда в /etc/php/ 7.1/apache2/php.ini и CURL звонил таким образом: ; Расширение = curl.dll
Изменить на расширение = curl.so
Сохранить и перезапустить apache: sudo systemctl restart apache2
Поддержка sqlite2 удаляется с php5, я думаю, поэтому sqlite.so больше не доступен в текущей версии пакета. Вы можете вручную восстановить его из natty-пакетов (это сработало для меня):
(https://lists.ubuntu.com/archives/ubuntu-server-bugs/2011-October/065547.html)