Что ж, max_memory_size одинаково на обоих серверах? Кроме того, другие параметры ini одинаковы для всех серверов?
Независимо от этих вещей, вы можете заставить CURL поддерживать файл меньшего размера, чем max_memory_size в PHP, установив CURLOPT_BUFFERSIZE , но даже тогда я сомневаюсь, что проблема ... Если вы читаете удаленный файл в переменную, то независимо от размера буфера, PHP будет поглощать память, пытаясь сохранить там весь удаленный файл. Так что не буфер исчерпывает память, а содержимое удаленного файла.
Моя ставка, если вы укажете CURLOPT_FILE , CURL запишет содержимое удаленного файла на диск в буферизованном виде, и вы сможете выгрузить файл на обоих серверах без изменения max_memory_size .
EDIT:
Теперь я вижу, где output_buffering вступит в игру с curl, и, конечно же, это тот случай, если CURLOPT_RETURNTRANSFER не установлен в значение true. Это было бы чем-то, чтобы проверить, использует ли OP _ob_start () _ и др. где-то; но это может быть причиной проблемы, если она действительно включена. Скорее всего, так обстоит дело на сервере server2, как предложил @DaveRandom.