Я сбит с толку, почему эти две вещи являются или кажутся взаимоисключающими, и мне интересно, есть ли способ использовать обе на PHP-5.4. Пытаясь установить этот параметр, я получаю следующую ошибку:
curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set
Я использую библиотеку API MailChimp, которая требует установки CURLOPT_FOLLOWLOCATION. Перенаправления могут происходить, и им следует следовать, и именно так работает Интернет.
Я также использую open_basedir в домене. Я хочу ограждать каталоги, к которым сайт может получить доступ. Это просто вещь безопасности, и пояса и подтяжки вместе с другими мерами безопасности.
Итак, есть ли способ использовать оба вместе? Я хочу, чтобы CURL следовал перенаправлениям, но также сохранял локальный доступ к файлам PHP-скриптов к определенным каталогам. Единственный подход, который я видел, который решает эту проблему, — это тот, который эмулирует CURL после перенаправления, но это кажется неуклюжим, тогда CURL уже предназначен для этого.
Редактировать:
Если это неясно, это строка, выдающая ошибку в пакете, который я использую:
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, true);
IMO PHP чрезмерно защищает, и это должно позволить мне это сделать. Итак, есть ли способ — без взлома/разветвления этого пакета — сказать PHP: «Смотрите, я знаю, что я здесь делаю»?
Я поднял это как проблему с разработчиками пакета, но до сих пор не получил ответа. Если бы пакет поддерживал инъекцию транспортного уровня, я мог бы просто обойти это, используя альтернативу PHP-функциям curl.