Изображение вмешательства на Heroku

Я работаю над приложением на Laravel, которое использует библиотеку Intervention Image и Imagick для загрузки и изменения размеров изображений на лету. Вот мой код:

public function saveImage($directory, $imageObject) {
        $imageFile = $imageObject->store('app/'.$directory);

        $filename = str_replace('app/'.$directory.'/','',$imageFile);        
        $imageObject = Storage::get($imageFile);

        $img = Image::make($imageObject);
        $img->resize(null, 40, function ($constraint) {
            $constraint->aspectRatio();
        });
        $imageFile = $img->stream();

        Storage::put('app/'.$directory.'/'.$filename, $imageFile->__toString());

        // $img->save($imagePath);

        return $filename;
    }

Однако проблема возникает на линии Image::make($imageObject). Единственная ошибка, которую возвращает Heroku, - это 503 Service Unavailable. Пожалуйста помоги.

установите в своем журнале config / app значение errorlog, то есть stdout, и вы должны получить дополнительную информацию в своем журнале heroku (logplex), как указано в docs.

mwal 25.03.2018 18:24

Спасибо друг. Это помогло.

SanketR 26.03.2018 05:19
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
460
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Imagick - это библиотека, которую необходимо установить на машине. От heroku docs:

The following built-in extensions have been built “shared” and can be enabled through composer.json (internal identifier names given in parentheses):

Добавьте код из этого ответа в свой composer.json-https://stackoverflow.com/a/35660753/2460352:

...
"require": {
     "ext-imagick": "*",
     ...
    }
}

Тогда вам понадобится более надежное ведение журнала для определения вашей проблемы. devcenter.heroku.com/articles/php-logging В этой ссылке есть раздел о том, как заставить laravel выводить ошибки.

Skarlinski 25.03.2018 16:36

Это помогло. Я обновил переменную среды в Heroku и обнаружил, что ошибки php появляются прямо на моем экране. Проблема заключалась в том, что библиотека gd не была установлена, хотя я использовал Imagick в config / image.php

SanketR 26.03.2018 05:20

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