【问题标题】:How to get the EXIF PHP extension working on Heroku?如何让 EXIF PHP 扩展在 Heroku 上运行?
【发布时间】:2014-09-22 07:28:47
【问题描述】:

我正在使用 数据来为我的图片添加标题。

在 localhost 上使用 exif_read_data 效果很好(在 Ubuntu 上使用 Apache),但 Heroku 报告:

PHP 致命错误:调用 /app/path/to/files 中未定义的函数 exif_read_data()。

我不太确定在这里做什么,查看错误消息,似乎我的 Heroku 应用程序上没有安装/启用 EXIF 功能。

可以添加或启用吗?

【问题讨论】:

    标签: exif php heroku


    【解决方案1】:

    您的 Heroku 应用没有启用 EXIF 功能是正确的。

    自“新”PHP buildpack 以来,启用扩展所需的只是define the required extensions in the composer.json file

    在 EXIF 的情况下:

    {
        "require": {
            "ext-exif":"*"
        }
    }
    

    这在 the article for custom PHP settings 的 Heroku 开发中心中有介绍。

    【讨论】:

    • 这就是解决方案。
    • 然而还是有人反对它,没有任何解释:-(
    • 确保在添加该行并提交您的锁定文件后运行composer update,否则 Heroku 将无法启用它。还有full list of extensions here
    【解决方案2】:

    exif 扩展未在您的 heroku 环境中启用。

    您需要支持exif 才能使用其功能。在 php.ini 中,你会发现这两行就是这样做的:

    extension=php_mbstring.dll
    extension=php_exif.dll
    

    当然,dll 应该在正确的文件夹中可用 - 对于 linux 而不是 .dll,它们将是 .so。我不确定它在heroku中是如何工作的。也许您可以让他们的技术支持来检查这些?

    【讨论】:

    • 好吧,我把我的 PHP.ini 放在 /www/etc/ 并重新提交。但是,我仍然收到 PHP 致命错误:调用 /app/... 中未定义的函数 exif_read_data() 并不确定该怎么做。
    • @user1789778,不,这不是你的做法。首先,环境中只有一个 php.ini,而且自从你的 php 脚本运行以来,它就已经存在了。其次,如果您对 php.ini 进行任何更改,您需要重新启动服务器或冷启动或云环境所做的任何事情。你在做什么是不够的。您可以做的第一件事是打印phpinfo() 并找到php.ini 所在的位置,然后在同一页面中查看是否存在名为exif 的部分
    • 旧问题/旧答案,但我认为通用服务器答案不能解决这个 Heroku 特定问题。
    猜你喜欢
    • 1970-01-01
    • 2022-06-11
    • 2015-06-26
    • 2014-02-08
    • 2015-11-25
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多