如何在Heroku上安装GD

12

我正在运行Laravel 5.3,并尝试进行一些图像操作。我遇到了这个错误:GD库在此PHP安装中不可用。

我尝试将gd放入我的composer.json中。

"require": {
    "php": ">=5.6.4",
    "laravel/framework": "5.3.*",
    "mews/purifier": "~2.0",
    "vinkla/hashids": "^2.4",
    "barryvdh/laravel-debugbar": "^2.2",
    "fzaninotto/faker": "~1.4",
    "intervention/image": "^2.3",
    "gd": "*"
},

但它没有起作用。 我还尝试了:

"ext-gd": "*" 

但那也没用。我查看了这个页面 https://devcenter.heroku.com/articles/php-support 上的内容,它说:

以下内置扩展已被构建成“共享”并且可以通过composer.json进行启用(括号中给出内部标识符名称)

GD (gd)


你的 composer.json 文件是否在代码库的根目录下?你是否追踪你的 composer.lock 文件? - Chris
4个回答

25

"gd": "*"添加到composer.json并执行composer update

如果这不起作用,请添加"ext-gd":" *"并执行composer update。


1
这些听起来像是针对Windows的指令。在Heroku上没有办法“将文件放入ext文件夹” 。 - Chris
抱歉我的错。然而,"ext-gd": "*" 应该可以工作。 - DroidNoob
1
我知道这是一个愚蠢的问题。你执行了 composer update 命令,对吗? - DroidNoob
谢谢,伙计!很高兴我能帮上忙。顺便说一句,抱歉没有读完整个内容。 - DroidNoob
1
当我运行composer update时,出现了拼写错误。同时,它显示“gd”已被弃用,应该使用包名称替代。我该怎么做? - CanCoder
@leeCoder,你试过"ext-gd":" *"吗? - DroidNoob

13

我运行了composer require ext-gdgit push heroku master,它能够正常工作。

我尝试将"gd": "*"添加到composer.json,并执行composer update,但在推送到Heroku时,遇到了Class 'Symfony\Component\HttpFoundation\InputBag' not found错误。我认为这不仅仅是使用composer update更新ext-gd的问题。


2

在composer.json文件中

"require": {
        "facade/ignition": "^2.3.6",
        "fzaninotto/faker": "^1.9.1",
        "mockery/mockery": "^1.3.1",
        "nunomaduro/collision": "^5.0",
        "phpunit/phpunit": "^9.3",
        "ext-gd": "*"

    },

更新composer并推送到源分支

composer update

git add .

git commit -m "message"

git push origin <branch name>

在Heroku上重建您的项目

https://devcenter.heroku.com/articles/php-support#extensions

在Heroku上重新构建您的项目时,请确保您已经安装了所需的扩展。您可以在上面提供的链接中找到有关如何安装扩展的详细信息。

花了4年2个月,但你回答了,谢谢@user9712543! - niko craft
对于php 7.2,还需要执行sudo apt install php7.2-gd && sudo service apache2 restart,因为我没有安装。 - Eugene Gr. Philippov
谢谢。但是在这样做之后,我在Heroku上收到了“419 | 页面过期错误”的错误提示。 - jovialcore

0

我按照相同的指示操作,但在Heroku上运行composer update后出现了问题。

您的要求无法解决为可安装的软件包集。

问题1 - 根composer.json需要PHP扩展ext-gd *,但它在您的系统中缺失。请安装或启用PHP的gd扩展。

要启用扩展,请验证它们是否在您的.ini文件中启用:

 - /app/.heroku/php/etc/php/php-cli.ini
 - /app/.heroku/php/etc/php/conf.d/000-heroku.ini
 - /app/.heroku/php/etc/php/conf.d/010-ext-zend_opcache.ini
 - /app/.heroku/php/etc/php/conf.d/100-ext-mbstring.ini

您也可以在终端中运行 php --ini 命令来查看 PHP 在 CLI 模式下使用的文件。

或者,您可以使用 --ignore-platform-req=ext-gd 参数来暂时忽略这些必需的扩展,并运行 Composer。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接