Не может включить php-завихрение на Ubuntu 18.04 и PHP 7.2

Таким образом, прямо сейчас я пытаюсь позволить php-завихрению в моем apache2 сервере на Ubuntu 18.04 позволить iframe отображать страницу внешнего сайта. я использовал методы для попытки этого, что я нашел зарегистрированными в несколько мест:

StackOverflow: Как я устанавливаю вихревое расширением расширение с PHP 7?

StackOverflow: установите ЗАВИХРЕНИЕ в php 7 (ubuntu14.04)

LinuxConfig.org: Как включить и отключить модуль завихрения PHP с Apache на Ubuntu Linux

Независимо от того, что я, кажется, делаю, я ничего не могу заставить вид связанных с завихрением команд работать в php, который очень печален. я удостоверился, что использовал sudo apt-get install curl php7.2-curl который установленный без проблемы, и затем перезапустили апачское сервисное использование sudo service apache2 restart. Я попытался включить расширение в использовании php.ini extension=php_curl.dll, и также extension=curl, без удачи. Если я пробую код, данный на linuxconfig.org для проверки вихревого состояния модуля, он говорит свое отключенное.

Если я пытаюсь выполнить свой код php, я нахожу в своих журналах:

Фатальная ошибка PHP: Непойманная Ошибка: Звоните в неопределенную функцию curl_init () в/var/www/html/inc.redirect.php:4\nStack trace:\n#0 {основной }\\n добавленный/var/www/html/inc.redirect.php на строке 4

Код в моем 'inc.redirect.php' файле следующие:

<?php
if (isset($_GET['url'])) {
    $url = $_GET['url'];
    $ch = curl_init();
    $timeout = 10;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;
}
?>

Что я делаю несправедливость/пропавших без вести?

ОБНОВЛЕНИЕ: взгляд в apache2 error.log, когда я перезапускаю сервис, я вижу следующее:

Предупреждение PHP: Запуск PHP: Не мог загрузить динамическую библиотеку, '/usr/lib/php/20160303/curl.so'-/usr/lib/php/20160303/curl.so: не может открыть файл общего объекта: Никакой такой файл или каталог в Неизвестном на строке 0

Все еще пытаясь вырыть больше в это, и кажется, что curl.so файл его поиск расположен в '/usr/lib/php/20170718'. Что я должен сделать для изменения конфигурации php для взгляда в надлежащем каталоге?

2
задан 7 February 2019 в 20:56

2 ответа

Найденный проблемой.

То, что происходило, было, у меня было и php7.1 и php7.2, включенный в apache2. должен был работать sudo a2dismod php7.1, перезапустите апача, и впоследствии я смог загрузить свою inc.redirect.php страницу без ошибок.

3
ответ дан 2 December 2019 в 02:41

Спасибо MathewH, последние 2 дня я мучился, но не смог найти ошибку, так как был установлен модуль curl, также было установлено расширение php-curl, я смог запустить curl для URL-адреса в терминале, но когда я запускаю функцию curl_init() в коде PHP, она всегда будет показывать 500 внутренних ошибок сервера,

Хотя я установил модуль curl с помощью следующих команд:

sudo apt-get install php7.0-curl
sudo /etc/init.d/apache2 restart

так как в моей системе установлен php 7.4.6

Затем я проверил журналы ошибок Apache2 в /var/log/apache2/error_log и обнаружил, что curl_init() показывает ошибку

Call to undefined function curl_init()

Затем поиск в Google находит ссылку: PHP: проверьте, включен ли cURL. в котором упоминаются эти 3 кода, чтобы проверить, загружен ли curl или нет:

  1.  if (function_exists ('curl_init') === false)
    {
    
     //curl_init не определен
     //cURL не включен
    
    }
    
  2. //Проверить, можно ли найти "curl" в массиве загруженных расширений.
    если (in_array ('завиток', get_loaded_extensions ()))
    {
     //модуль cURL загружен
    }
    еще
    {
     //Он не был загружен. Используйте запасной вариант.
    }
    
  3. если(extension_loaded('завиток'))
    {
     // расширение загружено
    }
    

Я добавил эти 3 кода в index.php и назвал папку проекта curl-load-check.После запуска я обнаружил и получил подтверждение, что расширение curl не загружено.

Наконец-то я нашел эту ссылку: Невозможно включить php-curl в Ubuntu 18.04 и PHP 7.2 и из ответа MathewH, Я обнаружил, что php 7.2 и php 7.4 были включены в apache2. поэтому я отключил php 7.2 с помощью следующих команд:

sudo a2dismod php7.2
sudo systemctl restart apache2 

и затем, наконец, я проверил php-код, чтобы проверить, загружено ли расширение curl, как указано выше в php-кодах, и наконец показало, что расширение curl успешно загружено. Я проверил, что функция curl_init(), используемая в php-коде, теперь работает без ошибок. Спасибо, MathewH, после долгой борьбы вы, наконец, спасли мой день

2
ответ дан 11 June 2020 в 13:11

Другие вопросы по тегам:

Похожие вопросы: