51

如何在 Yosemite 10.10 - PHP 5.5.14 build中安装/启用php-gdmcrypt ?

请注意,以下步骤安装最新的 PHP 5.5.x

要检查您是否安装了 gd 和 mcrypt 用于$ php -m在模块中显示编译,如果您缺少所需的模块,请继续,请参阅接受的答案


广东

因此,Apple 安装了 GD(并且您正在使用他们的 PHP 构建,这很好),但不包括对 PNG 的支持。

如果缺少imagecreatefrompng()函数,您肯定缺少“完整” gd(支持 png)模块 。

"Call to undefined function imagecreatefrompng()"

在此处输入图像描述


加密货币

使用接受的答案安装 brew并在 gd 安装中省略部分(除非您需要它),并使用以下步骤:

  1. 搜索 -$ brew search mcrypt
  2. 选择你想要的 PHP 版本
  3. 安装 -$ brew install php55-mcrypt
  4. 确认使用$ php -m | grep mcrypt

想要在 PHP 版本之间切换?

查看brew-php-switcher并按照说明进行操作。

4

4 回答 4

81

你是对的,Yosemite 的内置 PHP 不支持 PNG 和 FreeType。
El Captian 2015/10 更新:使用 OS X 10.11 El Capitan PNG 支持又回来了,但仍然缺少 FreeType。

解决方案

使用 Homebrew 包管理器轻松构建和安装完整的 PHP 并在 Apache 的配置中替换它。如果您按照以下步骤操作,整个过程只需大约十分钟。

快速(但完整)的遍历

(注 1:我在这里使用Homebrew,这是一个 OS X 的包管理系统。如果您熟悉MacPorts - 另一个包管理器 - 您可以使用该系统获得相同的结果。也可以并行使用我的 Homebrew 解决方案您机器上现有的 MacPorts 安装。)
(注 2:如果您想阅读有关安装过程的所有详细信息,请查看Homebrew 基本安装Homebrew PHP 安装信息。但如果您真的不需要你按照这些步骤。)

现在让我们走吧...

首先从 App Store 安装 Xcode。如果您已经拥有它,请再次检查 App Store,以确保您拥有最新版本!

现在您需要安装Xcode 命令行工具。为此,请打开终端并输入:

xcode-select --install

下一个命令将安装 Homebrew 包管理器系统:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

该脚本解释了它将做什么,然后在它执行之前暂停。

下一个要输入的命令是一种系统状态测试:

brew doctor

这将检查 Homebrew 安装的基础知识。
我收到一条警告“您已安装 MacPorts 或 Fink:/opt/local/bin/port ...”,但我成功忽略了它。;)

现在设置 homebrew/dupes 水龙头,它具有我们需要的依赖项:

brew tap homebrew/dupes

设置 homebrew/versions 水龙头,它也有我们需要的依赖:

brew tap homebrew/versions

然后运行以下命令:

brew tap homebrew/homebrew-php

现在您已准备好最终构建 PHP。有关可用配置选项的列表,您可以运行以下选项之一:

brew options php55
brew options php56

但我很好,只是使用默认值。
为此,请根据您的需要输入以下两者之一

brew install php55
brew install php56

(这需要一段时间,请耐心等待!)

在 Yosemite (10.10.5) 上安装 php56 (5.6.x) 时出现错误,请在 github 上查看此问题。改为使用brew install php56 --without-ldap

如果您收到“无法找到 OpenSSL”类型的错误,则您没有安装 Xcode 命令行工具,正如我在开始时告诉您的那样。;) 继续,安装它们并重新运行最后一个命令。

PHP 现在已构建,脚本将以有关如何使用它的一些详细信息结束:

打开 httpd.conf(应该位于 /private/etc/apache2/httpd.conf)并通过添加这两行之一来启用 PHP 具体取决于您刚刚安装的 PHP 版本:

LoadModule php5_module /usr/local/opt/php55/libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so

不要忘记注释掉Yosemite 自己的 PHP 版本中可能存在的任何现有LoadModule php5_module...行!

重启阿帕奇

sudo apachectl restart

您可以在以下位置找到新的 php.ini 文件:/usr/local/etc/php/5.5/php.ini

享受!

于 2014-10-22T10:37:15.590 回答
21

@Jpsy 的答案很好,但还有另一个选择,来自 liip 的人,这里。这是一个为 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

于 2014-10-25T05:20:26.027 回答
3

我没有足够的代表发表评论,但如果您使用 OS X Server for Yosemite(App Store 中的第 4 版),则要编辑的文件是:

/library/server/web/config/apache2/httpd_server_app.conf

我的现在看起来像这样,并在使用自制的 php 5.6 后确认它正在工作。

#LoadModule php5_module libexec/apache2/libphp5.so
LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
于 2015-01-05T20:10:02.403 回答
0

标准 Apache 附带 Yosemite 之后要更新的文件

sudo brew install php55

/etc/apache2/httpd.conf

请注意,php.ini 的位置也发生了变化。Yosemite 附带的标准版本在 /etc/php.ini 中,自制版本的版本在/usr/local/etc/php/5.5/php.ini

于 2015-01-10T16:53:34.663 回答