PHP Serverless Slim не может выполнить imagettftext - PullRequest
0 голосов
/ 08 января 2020

Я намерен использовать безсерверную функцию php для создания изображения со шрифтами TrueType. Для этого я выбрал bref с Serverless framework и composer.

Чтобы обработать изображение и включить текст, Я использую функцию imagettftext из библиотеки gd. Я запустил php -S localhost:8000 index.php для локального тестирования. Он работал нормально, я получил выходное изображение, как я и ожидал.

Таким образом, я запустил composer install --optimize-autoloader --no-dev, а затем serverless deploy, чтобы создать AWS функцию Lamda. Однако, когда я вызвал конечную точку развернутой функции, она показала Slim Application Error - без каких-либо подробностей:

Произошла ошибка веб-сайта. Извините за временные неудобства.

Итак, я взглянул на AWS Журналы Cloudwatch и нашел это сообщение об ошибке:

Сообщение: вызов неопределенной функции imagettftext ()

При поиске этой ошибки я обнаружил, что она часто связана с отсутствующей библиотекой gd. Затем я сравнил phpinfo() из локального теста с тестом из развернутой функции. На обоих установлен gd, разница в том, что на локальном FreeType Support включен.

Не могли бы вы помочь мне найти способ включить этот FreeType Support также для функции без сервера? Можно ли требовать эту поддержку через composer.json?

1 Ответ

0 голосов
/ 09 января 2020

В настоящий момент на GitHub открыта проблема, связанная с компиляцией PHP с поддержкой freetype, которая объясняет результат, который вы видите: https://github.com/brefphp/bref/issues/497.

GD необходимо знать о freetype, так как оно скомпилировано в PHP, поэтому я сомневаюсь, что вы сможете включить его с composer

...