Таким образом, прямо сейчас я пытаюсь позволить 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 для взгляда в надлежащем каталоге?
Найденный проблемой.
То, что происходило, было, у меня было и php7.1 и php7.2, включенный в apache2. должен был работать sudo a2dismod php7.1
, перезапустите апача, и впоследствии я смог загрузить свою inc.redirect.php страницу без ошибок.
Спасибо 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 или нет:
if (function_exists ('curl_init') === false)
{
//curl_init не определен
//cURL не включен
}
//Проверить, можно ли найти "curl" в массиве загруженных расширений.
если (in_array ('завиток', get_loaded_extensions ()))
{
//модуль cURL загружен
}
еще
{
//Он не был загружен. Используйте запасной вариант.
}
если(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, после долгой борьбы вы, наконец, спасли мой день