【问题标题】:After upgrade, PHP no longer supports PNG operations升级后PHP不再支持PNG操作
【发布时间】:2014-12-14 02:42:22
【问题描述】:

更新到 Mac OS X 10.10 (Yosemite) 并启动支持 PHP 的 Apache 后,除了对 PNG 文件的任何图像操作外,一切都像以前一样工作。我得到一个Call to undefined function imagecreatefrompng(),而对 JPEG 文件的任何操作都有效。所以 GD 存在,但不适用于 PNG。

phpinfo() 中有一行看起来像问题:'--with-png-dir=no'

来自phpinfo()的GD部分:

如何让包含的 PHP 处理 PNG 文件?

【问题讨论】:

  • 我也升级到了优胜美地并被这个咬了。我通过安装自定义 php 修复了它,但这并不理想。我们可以做些什么来让苹果在未来的更新中修复 gd 和 png?
  • 如果任何参与者想知道所有选票来自哪里 - this question has been discussed on meta
  • 看起来您已将 GD 库或 php-gd 模块升级到编译后不支持 PNG 的版本。如果是这种情况,您需要使用支持,或通过支持升级到第 3 方版本。
  • 这是个好问题。为什么要暂停??
  • 我不明白为什么这个问题被搁置它有很多帮助(我有类似的问题)。如果没有@Jpsy 对我的 Q 的回答,我就无法做到。

标签: php osx-yosemite php-gd


【解决方案1】:

这是另一个选项,来自 liip,here。这是一个为 Yosemite 预先构建的 PHP 包(旧版本也可以),但它只是 一行 代码:

curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5

之后,一切都准备就绪,可以按预期工作。该安装附带的配置非常适合 Symfony 2 开发,但它应该可以很好地用于其他用例。

最后,如果你也需要使用更新后的 PHP CLI,但又不想使用操作系统自带的 PHP 版本,那么你也可以在你的 .bash_profile 或类似的代码中添加这行代码:

export PATH=/usr/local/php5/bin:$PATH

【讨论】:

  • 就这样走了,很轻松也很容易做到。像魅力一样工作
  • 这会将 Apache 服务器的 PHP 更新到 5.6,这会破坏很多代码库。这样做后如何恢复?
  • 可能会解决问题,但正如@John 所说,会破坏许多代码库。它还运行一个任意托管脚本,在运行之前读取文件
  • 我更新了命令行代码以使用 PHP 5.5 而不是 5.6。从技术上讲,您可以使用相同的 install.sh 脚本选择 5.3 和 5.6 之间的任何版本。
【解决方案2】:

我不得不通过 Homebrew 再次安装 PHP 5.5 来解决这个问题。相当无痛:

https://github.com/Homebrew/homebrew-php

安装说明可以在这里找到:https://github.com/Homebrew/homebrew-php#usage

我使用了命令brew install php55

不要忘记更新您的 httpd.config - 说明将在 homebrew 安装结束时显示。

【讨论】:

  • 为了帮助其他人,我还必须brew updatebrew upgrade libpng 才能让它工作。
【解决方案3】:

正如@jtotheh 所说,安装一个包含PNG 和FreeType 支持的完整PHP 版本是可行的方法。

如果您不想折腾该过程,我已经准备了完整的分步说明作为类似问题的答案:https://stackoverflow.com/a/26505558/430742

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多